scrollview 中嵌套listview 把其他view顶上去怎么解决
1个回答
2017-05-04
展开全部
解决方案1:ScrollView.post()
[java] view plain copy 在CODE上查看代码片派生到我的代码片
sv_container.post(
new Runnable() {
public void run() {
//sv_container.fullScroll(ScrollView.FOCUS_UP);
sv_container.scrollTo(0, 0) ;
}
});
【注意】方法中开一个新线程是必要的。否则在数据更新导致换行时getMeasuredHeight方法并不是最新的高度。
在listview绘制好数据后,就可以使用该方法了,可以达到进页面就在顶部的目的,但是能感觉页面有明显的跳动。
解决方案2:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
sv_container.smoothScrollTo(0,0);
在listview绘制好数据后使用,感觉不到页面有跳动,推荐使用该法。
在ListView完成刷新后我们如果需要做些事情可以给它添加一个listener:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
mSongsList.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right,
int bottom, int oldLeft, int oldTop, int oldRight,
int oldBottom) {
}
}
每次在listView的adapter的notifyDatechange调用后这个onLayoutChange都会被回调,我们就可以在这里做些我们想要的事情。
方法2
目前使用方法。
一起学android之解决在scrollview中嵌套ListView切换界面时scrollview整体向下滑动(31)
有时候我们在scrollview中会嵌套ListView,在嵌套ListView(ListView上面还有一些控件)后,切换Activity时会发现整个
scrollview 被向下滑动直到ListView置顶了,而上面的控件无法显示时,我们可以这样做:
将图中的View放在顶部,最后在代码中这样做:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
view.setFocusable(true);
view.setFocusableInTouchMode(true);
view.requestFocus();
通过setFocusable和setFocusableInTouchMode方法获得焦点,最后通过requestFocus执行。
[java] view plain copy 在CODE上查看代码片派生到我的代码片
sv_container.post(
new Runnable() {
public void run() {
//sv_container.fullScroll(ScrollView.FOCUS_UP);
sv_container.scrollTo(0, 0) ;
}
});
【注意】方法中开一个新线程是必要的。否则在数据更新导致换行时getMeasuredHeight方法并不是最新的高度。
在listview绘制好数据后,就可以使用该方法了,可以达到进页面就在顶部的目的,但是能感觉页面有明显的跳动。
解决方案2:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
sv_container.smoothScrollTo(0,0);
在listview绘制好数据后使用,感觉不到页面有跳动,推荐使用该法。
在ListView完成刷新后我们如果需要做些事情可以给它添加一个listener:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
mSongsList.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right,
int bottom, int oldLeft, int oldTop, int oldRight,
int oldBottom) {
}
}
每次在listView的adapter的notifyDatechange调用后这个onLayoutChange都会被回调,我们就可以在这里做些我们想要的事情。
方法2
目前使用方法。
一起学android之解决在scrollview中嵌套ListView切换界面时scrollview整体向下滑动(31)
有时候我们在scrollview中会嵌套ListView,在嵌套ListView(ListView上面还有一些控件)后,切换Activity时会发现整个
scrollview 被向下滑动直到ListView置顶了,而上面的控件无法显示时,我们可以这样做:
将图中的View放在顶部,最后在代码中这样做:
[java] view plain copy 在CODE上查看代码片派生到我的代码片
view.setFocusable(true);
view.setFocusableInTouchMode(true);
view.requestFocus();
通过setFocusable和setFocusableInTouchMode方法获得焦点,最后通过requestFocus执行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询