我有一个使用FrameLayouts的双窗格,并排布局,每个布局都有效地填充了屏幕的高度(限制边距):
右边'FrameLayout'的布局如下:
<LinearLayout
android:id="@+id/details_frame"
android:layout_width="0px"
android:layout_height="match_parent"
android:layout_weight="2"
android:orientation="vertical">
<FrameLayout android:id="@+id/details_frag"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:paddingTop="48dp"/>
在左侧片段中的某个选择中,虽然我想将右侧FrameLayout拆分为两个,这样我就可以将不同的片段放入每个片段,其中顶部帧包含内容,而底部占用任何剩余空间,如下所示:
我一直在尝试在现有的FrameLayout下添加一个新的FrameLayout然后玩重量,高度,这更接近我想要的,除了我要放在detaisl_frag_lower
中的片段的事实是ListFragment
,当屏幕上的条目多于适合时,列表最终会被填充到屏幕底部以外,而不是在可用区域内滚动:
<FrameLayout android:id="@+id/details_frag"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:paddingTop="48dp"/>
<FrameLayout android:id="@+id/details_frag_lower"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"/>
修改 顺便说一下,我正在将片段扩展到每个FrameLayout
提前致谢。彼得。
答案 0 :(得分:1)
我会将此全部更改为LinearLayout。 layout_weight将为您填补空间。您可以通过使用id找到它来显示/隐藏红色窗格,然后设置pane.setVisibility(View.VISIBLE)(或设置View.GONE)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="#ffff00"
android:orientation="vertical"
android:id="@+id/details_frag">
<!-- Left pane content -->
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="#00ff00"
android:orientation="vertical">
<!-- Right pane content -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="80dp"
android:orientation="vertical"
android:background="#ff0000"
android:visibility="gone"
android:id="@+id/details_frag_upper">
<!-- Initially hidden. Fill with whatever on left pane click -->
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="#0000ff"
android:id="@+id/details_frag_lower"
android:layout_weight="1">
<!-- Initially hidden. Fill with whatever on left pane click -->
</LinearLayout>
</LinearLayout>
</LinearLayout>