我希望创建这种类型的布局......
在左侧的xml中创建一个静态片段
在底部的xml中创建一个静态片段作为页脚
在顶部的xml中创建一个静态片段作为标题
最后
根据从外部到活动的不同广播,为运行时创建的不同动态片段的一个容器。
这是一个视觉......
如何在xml中构建此活动的布局?
答案 0 :(得分:1)
使用RelativeLayout
放置顶部和底部片段,然后在其间添加包含List片段和最后一个动态片段的水平LinearLayout
。片段的维度可以放在dimens
文件中,我在xml中有硬编码的48
dp;列表区域占宽度的20%,而内容区域占用其余区域。这是让你开始的东西:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/top_fragment"
android:name="com.adip.sampler.fragments.TopFragment"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_alignParentTop="true" />
<fragment
android:id="@+id/bottom_fragment"
android:name="com.adip.sampler.fragments.BottomFragment"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_alignParentBottom="true" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/bottom_fragment"
android:layout_below="@+id/top_fragment"
android:baselineAligned="false"
android:orientation="horizontal" >
<fragment
android:id="@+id/list_fragment"
name="com.adip.sampler.fragments.ListFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/dynamic_area"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4" >
</FrameLayout>
</LinearLayout>
</RelativeLayout>
或者如果您只想拥有视图组而没有fragment
标记,则可以使用此布局(您可以使用任何ViewGroup
代替FrameLayout
,我出于效率原因使用它:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/top_fragment"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_alignParentTop="true" />
<FrameLayout
android:id="@+id/bottom_fragment"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_alignParentBottom="true" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/bottom_fragment"
android:layout_below="@+id/top_fragment"
android:baselineAligned="false"
android:orientation="horizontal" >
<FrameLayout
android:id="@+id/list_fragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/dynamic_area"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4" >
</FrameLayout>
</LinearLayout>
</RelativeLayout>