Scrollview嵌套ListView
来源:互联网 发布:江苏省大数据交易中心 编辑:程序博客网 时间:2024/04/29 17:43
我们在做android开发的时候,经常会遇到Scrollview嵌套ListView的问题,其中有几点问题,就是scrollview和listview都会滑动。
第一个问题,解决listview的滑动:设置listview不滑动
重写listview,重写listview中的onmeasure方法
/**
* 设置不滚动
*/
public void onMeasure(int widthMeasureSpec,int heightMeasureSpec){
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
第二个问题,焦点问题,刚进入这个页面时焦点往往会移到listview上面去,所以
调用下面一个方法,将焦点移到scrollview上,并且定位到顶部
private void scrollToTop() {
new Handler().postDelayed(new Runnable() {
@Override
publicvoid run() {
getView(R.id.topLayout).requestFocus();
getView(R.id.topLayout).setFocusable(true);
getView(R.id.topLayout).setFocusableInTouchMode(true);
scrollView.fullScroll(ScrollView.FOCUS_UP);
}
}, 500);
}
第三个问题,因为listview之间的item会有一些divider分隔,所以有些时候会出现listview中的item显示不全,所以现在要根据实际
通过计算将listview的实际高度给计算出来:
/**
* 根据字item的高度设置listview的高度
* @param listView
*/
public void setListViewHeightBasedOnChildren(ListView listView) {
if(listView == null) return;
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
// pre-condition
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
这样就解决了其中最重要的三个问题。。。有什么问题还请大家不吝赐教。。- ListView嵌套ListView,ScrollView嵌套ListView
- android ScrollView嵌套ListView
- ScrollView中嵌套ListView
- ScrollView中嵌套ListView
- ScrollView中嵌套ListView
- ScrollView嵌套 ListView
- android ScrollView嵌套ListView
- ScrollView嵌套ListView解决办法
- ScrollView和ListView嵌套
- ScrollView中嵌套ListView
- ScrollView嵌套ListView问题
- ScrollView中嵌套ListView
- ScrollView中嵌套ListView
- Scrollview里嵌套listview
- ScrollView中嵌套ListView
- ScrollView嵌套ListView解决方法
- ScrollView中嵌套listview
- scrollview嵌套listview
- 译文 日经春秋 20150119
- 用visual event查看鼠标事件触发了什么jquery代码
- iOS之NSRange的使用
- linux进程间共享内存通信详解
- Android monkey的简单步骤
- Scrollview嵌套ListView
- JPA 的getsingleresult方法 报entity not found
- Redis 键(key)
- 网络“黑色产业链”调查:环环相扣的数据泄露
- [Leetcode]Recover Binary Search Tree
- 小马哥 -----高仿红米note 主板为w5160 W 联通版刷机识别图与开机界面图
- EF中的ModelFirst设计实例
- 面试题:如何在一千万个不重复整数(电话号码)中查找某个特定数 位运算 bitmap
- Android Service 完全解析(上)