实现效果:两个listview可以一起上线滑动,其中一个listview左右滑动时,另一个listview不变
布局方式如下,并排放入两个listview并放入一个scrollview中,其中一个listview再放入horizontalscrollview中
布局代码如下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ScrollView
android:fillViewport="true"
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="446dp"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ListView
android:id="@+id/listView1"
android:layout_width="100dp"
android:layout_height="wrap_content" >
</ListView>
<HorizontalScrollView
android:id="@+id/horizontalScrollView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" >
<ListView
android:id="@+id/listView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</ListView>
</HorizontalScrollView>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
由于将listview放入scrollview的方法不太健康,所以listview获取的高度会出问题。
需要在更新数据时刷新listview的高度
动态刷新控件高度代码如下
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height=listdata.size()*ListItem.height;
listView.setLayoutParams(params);
其中listdata为要设定给listview的数据,listitem为自定义的listitem