4

В моем приложении, getChildView() внутри мой ExpandableListAdapter не вызывается, а адаптер возвращает правильное количество ребенка (когда getChildrenCount() называется). Мой вопрос: Каковы условия, которые необходимо выполнить, чтобы ExpandableListAdapter раздувал свои дети?На каких условиях getChildView() вызываются в ExpandableListAdapter

+1

Ну, я лично не использовал этот класс, но что вы делаете, что он не вызывает 'getChildView()'. Мое предположение заключалось в том, что оно вызывается, когда ему нужно подготовить себя к отображению 'View'. Поэтому, если родительский элемент не расширен, не будет причин для его вызова, поскольку он знает, что его не нужно показывать. Но опять же, какие условия вы испытываете? – Andy

+0

У меня есть ресурсы соответствующего кода по адресу: [StackOverflow question] (http://stackoverflow.com/questions/16569387/expandableview-inside-another-expandableview-wont-inflate-children). Надеюсь, он ответит на ваш вопрос. –

+0

Я знаю одно условие наверняка, и если 'childrenCount' возвращает 0, он не будет вызывать функцию (по понятным причинам) –

ответ

1

называется, когда у вас есть более чем на 1 пункт в группах и в Чайлдс, я имею в виду, когда getGroupCount возвращает значение больше 0

-2

Ваша проблема не в getChildView(), мой друг, это определенно с макетом.

Точная проблема с андроидом: layout_height = "" вашего расширяемого списка, который разрезает дочерние элементы.

Используйте это как расположение:

<LinearLayout 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" 
android:orientation="vertical" 
android:background="#FFFFFF" 
tools:context="/*your activity*/" > 

<ExpandableListView 
    android:id="@+id/list" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:choiceMode="singleChoice" 
    android:divider="@android:color/transparent" 
    android:childDivider="@android:color/transparent" 
    android:dividerHeight="0dp" /> 

0

getGroupCount() метод подскажет вам, сколько групп будет в вас ExpandableListView и getChildrenCount (int groupPosition) метод подскажет, сколько детей будет для соответствующей группы. Поэтому, если метод getChildrenCount не возвращает значение 1 или больше 1, то до тех пор, пока не будут видны дочерние представления.

Еще одна вещь, которая также имеет значение, когда ваш вид Views не становится видимым, «высота расширяемого списка должна быть match_parent, если раскрываемое представление списка находится в любом другом макете, тогда высота макета также должна быть match_parent».

Смежные вопросы