Вы используете тот же layout
(frag_turboone) для ExpandableListView
и для каждой строки группы и дочерней строки.Вы должны предоставить различные макеты для каждого из 3 компонентов.Один макет для вашего fragment
, который содержит ExpandableListView
, другой для вашего группового макета (заголовки) и другой для вашего дочернего представления (строки внутри группы).
Поскольку вы используете один и тот же макет для всех компонентов, любой View
, добавленный в этот макет, добавляется также в список, в группы и дочерние элементы.Вот почему вы должны создавать отдельные макеты.
Фрагмент
Итак, ваш макет фрагмента должен быть следующим: fragment_turboone.xml
<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"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".TurbooneFragment"
android:background="@color/gray_50">
<Button
android:id="+@id/buttonId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="your text"/>
<ExpandableListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:id="@+id/turboone_view"
android:layout_above="@id/buttonId">
</ExpandableListView>
</RelativeLayout>
Представление группы
Затем вам нужно создать другой макет (файл XML внутри layout
папки в ресурсах) для представления вашей группы: group_layout.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/blue_500"
android:textSize="14sp"
android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft"
android:id="@+id/listturbooneheader"/>
</LinearLayout>
Детский вид
И еще один макет для вашего дочернего вида: child_layout.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="12sp"
android:paddingLeft="?android:attr/expandableListPreferredChildPaddingLeft"
android:id="@+id/turboone_item"
android:textColor="@android:color/black"/>
</LinearLayout>
Наконец, вы должны правильно раздувать каждый макет.onCreateView()
вашего TurbooneFragment
является правильным, так как он надувается fragment_turboone
.
В вашем адаптере вы должны изменить макет, накачанный для вашей группы и ребенка.
В вашем getGroupView()
вашего TurbooneListAdapter
вам нужно изменить строку:
view = inflater.inflate(R.layout.fragment_turboone, null);
для
view = inflater.inflate(R.layout.group_layout, null);
А в вашем getChildView()
вашего TurbooneListAdapter
вы должны изменить строку:
view = inflater.inflate(R.layout.fragment_turboone, null);
для
view = inflater.inflate(R.layout.child_layout, null);
И тогда ваш список должен работать.