问题重现
最近在公司项目中做一个商品展示的功能,要求在分类后 ,对每个类进行展开、收起操作。想法就是在ListView中嵌套一个ListView,通过动态的显示和隐藏ListView,实现展开和收起操作在同一个页面,实现折叠效果。难点:解决ListView的动态设置问题.先看效果图:
解决思路
外面一层是一个ListView,在填充Item的时候,在Item布局设置为LinearLayout,在下面设置一个ListView,默认为gone。在ListView适配器中动态设置显示和隐藏ListView,显示的时候通过子适配器填充数据,同时设置字ListView动态高度,以便解决之前的只显示一条的问题。
主页面布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<ListView
android:id="@+id/pro_lv"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ListView>
</RelativeLayout>
两个Item布局
item_produces.xml(大ListView Item)实现了分层的Franlayout,效果:图片上有布局。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<View
android:layout_width="match_parent"
android:layout_height="10dp"
android:background="#F6F5F4" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tv_control"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="10dp"
android:clickable="true"
android:padding="5dp"
android:text="展开更多"
android:textColor="#99000000"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_pro_all"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="11dp"
android:padding="5dp"
android:text="美妆专场"
android:textColor="#000000"
android:textSize="14sp" />
</RelativeLayout>
</