因为这两个都是可滚动的,所以在触摸事件上会有冲突.
具体表现在两个地方:1.listview的高度会显示错误.2.进入该界面后不是显示最顶部
关于第一个,解决的办法有这么几点.
1)ScrollView添加android:fillViewport="true"
2)listview如果可以定高,则在layout里定高
3)listview在代码里根据item的数量和item的高度定高
int listViewheigh
= synSettingList.size() *
( int )
getResources().getDimension( R.dimen.my_user_info_weibo_syn_row_height); LinearLayout.LayoutParams
lp = new LinearLayout.LayoutParams( ListView.LayoutParams.FILL_PARENT,
listViewheigh); lvSynSetting.setLayoutParams(lp); |
关于第二个,
可以通过scrolview的scrollTo方法移动到顶部.
但这个问题是,在第一次进入界面的时候,不管是在onResome还是onStart方法里调用这个方法都无效.我猜测应该是在onStart之后,界面才会开始把视图往下走.所以,可以通过handle的延迟加载runnable的方式,延迟几百毫秒再调用这个方法
http://blog.youkuaiyun.com/linjingj/article/details/7756911