如果在一个layout里面需要定义有两个listview,那么显示的时候会不协调,在google上搜了一下,发现有人已经解决了这个问题,但是我还是想把这么好的方法记录下来,分享给大家。
1.在layout里面定义两个listview:
<ListView
android:id="@+id/ipcamListView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
style="@style/RectListView">
</ListView>
<ListView
android:id="@+id/sensorListView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/RectListView" >
</ListView>
2.定义个类用来处理listview之间的布局
public static void setListViewHeightBasedOnChildren(ListView listView) {
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);
}
3.最后在重写view方法的里面调用这个方法就行了
setListViewHeightBasedOnChildren(holder.sensorListView);
((ViewPager) container).addView(convertView, 0);
分享到:
相关推荐
当ViewPager与ListView共存时,主要的问题有以下几点: 1. 冲突的滑动手势:由于两者都有滑动操作,可能会导致手势冲突,用户在滑动ListView时误触发ViewPager的滑动。解决这个问题的方法是自定义ViewPager,重写...
标题"ScrollView与ListView共存"涉及到的问题主要集中在如何在同一个界面中合理地结合这两个组件,同时避免出现UI冲突。描述中提到的“在setAdapter之前计算出ListView的宽高”,这是解决两者冲突的一个关键策略。 ...
这个“安卓listview相关相关-一个简单的实现双listview共存demo”压缩包文件提供了实现两个ListView并排显示的示例,这对于构建复杂的用户界面,如显示不同类别的信息,或者在同一个屏幕中对比数据,非常有用。...
综上所述,解决ScrollView与ListView共存问题的关键在于合理利用Android提供的组件和特性,如NestedScrollView、Header/Footer视图、ViewHolder模式等。同时,通过监听和处理滚动事件,可以实现ListView的自动翻页...
然而,当试图在同一布局中同时使用这两个控件时,通常会出现冲突,因为它们都具有滚动功能,系统无法正确处理两个可滚动视图的交互。这个问题在实际开发中很常见,特别是在设计自定义布局时。 要解决ListView和...
### Android ScrollView与ListView/GridView共存冲突解决方案 #### 背景介绍 在Android开发过程中,经常需要将多个UI组件组合在一起以实现丰富的界面效果。其中,`ScrollView`是一种常用的容器,可以用来包裹一系列...
在“双列共存的listview”这个主题中,我们主要讨论如何在单个ListView中实现两列数据并排显示,同时支持排序功能。这样的设计可以提高界面的布局效率,优化用户体验,尤其适用于商品展示或者目录分类等场景。 首先...
当`ListView`位于`ViewPage`的某个页面内时,两个组件的滑动冲突就会显现。为了解决这个问题,我们可以采用以下策略: 1. **隔离滑动事件**:我们可以监听`ListView`的滑动事件,当`ListView`在滑动时,阻止`...
这个问题是由于两个可滚动组件共存导致的,Android系统无法正确处理它们之间的交互。 首先,我们要理解为何会出现滚动冲突。ScrollView默认会尝试处理其内部所有子视图的滚动事件,而ListView本身就有自己的滚动...
标题"Android高级应用源码-横竖都能滑动的listview嵌套在一起的.rar"所涉及的知识点正是如何解决这个问题,实现两个ListView的和谐共存,同时支持横向和纵向滑动。 首先,我们要理解Android中的NestedScrolling机制...
在"DragScrollDetailsLayout-master"这个项目中,开发者可能实现了一个名为`DragScrollDetailsLayout`的自定义布局,它能够同时处理`ListView`和`ViewPager`的滑动事件,确保它们可以和谐共存,不会互相干扰。...
- **布局结构**:`DrawerLayout`包含两个主要部分,一个是主要内容视图,另一个是抽屉视图(即侧滑菜单)。抽屉视图可以设置在左侧或右侧,通过`android:layout_gravity`属性指定。 - **打开和关闭**:使用`...
这个问题在用户尝试同时滚动两个视图时尤为明显。例如,在购物应用中,上拉查看图文详情的场景就是一个典型的例子。解决这种冲突的关键在于正确地分发触摸事件,以便在适当的时候让合适的视图处理滑动。 一种解决...