android 联动listview 的一种不太健康的实现方式

来源:互联网 发布:ubuntu解压安装 编辑:程序博客网 时间:2024/05/16 23:55

实现效果:两个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

这种方法确实不健康,在别处看到了通过重载view的触摸事件来实现滚动,但是写出来容易出问题
原创粉丝点击