这是ListView
的每一行的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llRow"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/llClosed"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
Stuff Inside
</LinearLayout>
<LinearLayout
android:id="@+id/llOpen"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
Stuff Inside
</LinearLayout>
</LinearLayout>
我的想法是当我点击ListView
项时,它将 llClosed 设置为Gone
而 llOpen 设置为Visible
所以稍后通过一些动画我可以创建一个扩展的外观。
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
View open = v.findViewById(R.id.llOpen);
View close = v.findViewById(R.id.llClosed);
close.setVisibility(View.GONE);
open.setVisibility(View.VISIBLE);
}
问题在于,当我点击第一行时,它不仅会更改第一行,还会更改另一行,第2行或第3行。什么可能导致这种情况?
已解决:如果我在列表适配器中执行llOpen.setVisibility(View.GONE),它将解决我的问题。
答案 0 :(得分:0)
好吧,一个问题是你有两个具有相同ID android:id="@+id/llClosed"
布局中具有ID的所有元素都应具有唯一的元素。试试android:id="@+id/llClosed1"
和android:id="@+id/llClosed2"
我很抱歉,但我无法确定你想要完成什么,但看起来你可能想尝试expandablelistview
课程。退房:
http://techdroid.kbeanie.com/2010/09/expandablelistview-on-android.html
http://about-android.blogspot.com/2010/04/steps-to-implement-expandablelistview.html