如何为LinearLayout中的碎片分配比例尺寸?

时间:2015-04-09 05:57:58

标签: android android-fragments

我试图让3个不同的Fragment在一个Activity处垂直移位。

我想:

  • 为每个片段指定一个比例(优先以百分比表示)。
  • 碎片应占整个设备宽度。
  • 根据轮换改变它的位移。

这就是我的活动布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:baselineAligned="false"
    android:orientation="vertical" >

    <fragment
        android:id="@+id/messageFragment"
        android:name="apps.android.expressa.expressa.Fragments.MessageFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        tools:layout="@layout/message_fragment_layout" />

    <fragment
        android:id="@+id/listsFragment"
        android:name="apps.android.expressa.expressa.Fragments.ListsFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="2"
        tools:layout="@layout/lists_fragment_layout" />

    <fragment
        android:id="@+id/bottomBarFragment"
        android:name="apps.android.expressa.expressa.Fragments.BottomBarFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="3"
        tools:layout="@layout/bottom_bar_layout" />


</LinearLayout>

现在的问题是,只有第一个和第二个片段显示,而第三个只看到一个顶部。作为一个注释,我现在是Android 的新手

1 个答案:

答案 0 :(得分:3)

希望这有帮助

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false"
android:orientation="vertical"
android:weightSum="6" >

<fragment
    android:id="@+id/messageFragment"
    android:name="apps.android.expressa.expressa.Fragments.MessageFragment"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    tools:layout="@layout/message_fragment_layout" />

<fragment
    android:id="@+id/listsFragment"
    android:name="apps.android.expressa.expressa.Fragments.ListsFragment"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="2"
    tools:layout="@layout/lists_fragment_layout" />

<fragment
    android:id="@+id/bottomBarFragment"
    android:name="apps.android.expressa.expressa.Fragments.BottomBarFragment"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="3"
    tools:layout="@layout/bottom_bar_layout" />

</LinearLayout>

Screenshot