Один из моих DialogFragments реализует два GridViews равного размера, один из которых уложен поверх другого. В идеале, мой макет будет выглядеть следующим образом (как показано в Android Studio): Как создать вертикальную компоновку 50/50 со сложными GridViews?
К сожалению, когда я загрузить макет на реальном устройстве Android, я получаю что-то вроде этого:
Когда Kanji GridView пуст, он совершенно невидим. Кроме того, его высота варьируется в зависимости от количества элементов, которые она должна отображать. Как заставить нижний GridView заполнить 50% высоты в соответствии с макетом в Studio Studio, даже когда он пуст?
Вот XML для данного макета:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/kanji_lookup_root"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:focusableInTouchMode="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ProgressBar
android:layout_width="32dp"
android:layout_height="32dp"
android:id="@+id/progress_bar"
android:layout_toStartOf="@+id/search_box_kanji"
android:visibility="gone"
android:indeterminate="true"
android:layout_centerVertical="true"/>
<SearchView
android:layout_width="300dp"
android:layout_height="wrap_content"
android:id="@id/search_box_kanji"
android:queryHint="@string/menu_search_hint"
android:iconifiedByDefault="false"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
style="@style/EntryDetailsHeader"
android:text="@string/components" />
<com.tonicartos.widget.stickygridheaders.StickyGridHeadersGridView
android:id="@+id/grid_components"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="9"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
style="@style/EntryDetailsHeader"
android:text="@string/kanji" />
<GridView
android:id="@+id/grid_kanji"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:numColumns="9"/>
</LinearLayout>
</LinearLayout>
(Кстати, я использую StickyGridHeaders library для верхней компоненты GridView)
Нет кубиков, я пробовал это, а нижнее LinearLayout все еще исчезает, если в дочернем GridView ничего нет. Я просто хочу, чтобы он заполнил свое назначенное место независимо от количества элементов в GridView. : \ – IAmKale