我的一個DialogFragments實現了兩個相同大小的GridView,一個堆疊在另一個之上。理想情況下,我的佈局是這樣的(如Android Studio中看到的): 如何創建堆疊GridView的50/50垂直佈局?
不幸的是,當我實際的Android設備上加載的佈局,我得到的是這樣的:
當漢字 GridView是空的,它是完全不可見的。此外,其高度根據要顯示的元素數量而變化。我怎麼能強制底部的GridView按照在Android Studio中看到的佈局填充高度的50%,即使它是空的?
下面是這個特定的佈局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控件的方式)
沒有骰子,我試過了,如果子GridView中沒有任何東西,底部的LinearLayout仍會消失。無論GridView中的項目數量是多少,我都希望它填充指定的位置。 :\ – IAmKale