【发布时间】:2015-09-15 11:43:17
【问题描述】:
我在我的项目中使用了 GridView,并包含了 ViewHolder。
现在,客户希望使用 ExpandableListView 显示数据,因为他只想显示标题,并且当用户单击标题时,它会在其下方显示子项。
- 之前没有经验,我想知道是否可以在代码中轻松地从 GridView 更改为 ExpandableListView。
请注意,我还在 Grid 中包含了文本搜索。如果我切换到 ExpandableListView,它仍然可用吗? - 如果上述是可能的,任何人都可以帮助我如何实现它。
Grid行xml如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="8dip"
android:paddingRight="4dip">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.8">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:typeface="sans"
android:textSize="13sp"
android:textStyle="bold"
android:id="@+id/placeName"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#88FFFFFF"
android:typeface="sans"
android:textSize="13sp"
android:textStyle="bold"
android:id="@+id/theme"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:id="@+id/Title"/>
<TextView
android:id="@+id/Details"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="1dip"
/>
<TextView
android:id="@+id/scheduleDays"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="bottom"
android:layout_gravity="bottom"
android:layout_marginRight="5dip"
android:layout_marginTop="7dip"
android:text="Family, Friends, Relatives, Grand-Parents"
android:textStyle="bold"/>
<TextView
android:id="@+id/Date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="bottom"
android:layout_gravity="right"
android:layout_marginRight="5dip"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/rightLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:orientation="vertical"
android:minWidth="60dp"
android:layout_weight="0.2">
<ImageView
android:id="@+id/starButton"
android:layout_width="40dp"
android:layout_gravity="right"
android:layout_marginRight="5dip"
android:layout_height="40dp"
android:background="#00FFFFFF"
android:src="@drawable/Favourite"/>
<ImageView
android:id="@+id/showMeButton"
android:layout_width="40dp"
android:layout_gravity="right"
android:layout_marginRight="15dip"
android:src="@drawable/showMe"/>
</LinearLayout>
</LinearLayout>
<View
android:id="@+id/separator"
android:layout_marginTop="5dip"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#33000000" />
</LinearLayout>
使用 ListView,我想将 PlaceName、Favorite Button 和 ShowMe Button 显示为标题,其余的显示为子项。
【问题讨论】:
-
在xml中设置
numColumns=1属性 -
@rajanks,numcolumns 已经是1,但是,我需要隐藏子数据,numColumns=1,同时显示标题和子数据。我希望它的行为与 ExpandableListView 完全相同。执行 numColumns=1 时,没有什么像 Header - Child