#android #listview
#Android #listview
Вопрос:
У меня серьезная проблема с ListView: я создал составной элемент управления
public class TopicControl extends LinearLayout
....
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:id="@ id/llTopicHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<Button
android:id="@ id/btnTopicTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tag="btnTopicTitle"
></Button>
<LinearLayout
android:id="@ id/llTopicBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:tag="llTopicBar"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bar_calendar"
></Button>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bar_person"
></Button>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@ id/tvTopicText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
></TextView>
</merge>
В этом элементе управления я реализовал скрытие / отображение llTopicBar при нажатии btnTopicTitle.
Проблема в том, что когда я добавляю этот компонент в ListView, после нажатия btnTopicTitle llTopicBar становится видимым не только для выбранного элемента, но и для каждого второго элемента LstViewItem.
после добавления «родительской» проверки llTopicBar становится видимым для каждого 4-го элемента в ListView.
Override
public void onClick(View v)
{
if (v.getParent().getParent() == getThis())
llTopicBar.setVisibility(llTopicBar.getVisibility() == View.VISIBLE ? View.INVISIBLE : View.VISIBLE);
}
Не могли бы вы, пожалуйста, помочь мне с этой проблемой?
Ответ №1:
Проблема заключалась в повторном использовании представлений для ListView во время прокрутки.