为什么layout_width应该设置为ZERO?

时间:2013-02-24 07:59:52

标签: android fragment

当我在

上学习片段时

http://developer.android.com/reference/android/app/Fragment.html

我在layout-land / fragment_layout.xml中看到了以下代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent" android:layout_height="match_parent">

    <fragment class="com.example.android.apis.app.FragmentLayout$TitlesFragment"
            android:id="@+id/titles" android:layout_weight="1"
            android:layout_width="0px" android:layout_height="match_parent" />

    <FrameLayout android:id="@+id/details" android:layout_weight="1"
            android:layout_width="0px" android:layout_height="match_parent"
            android:background="?android:attr/detailsElementBackground" />

</LinearLayout>

为什么fragment和framelayout的layout_width都设置为零? 我在纵向方向上尝试了相同的xml,设置了android:orientation="vertical",并显示了一个空白屏幕。那里有什么秘密?我的意思是纵向和横向之间有什么区别? FrameLayout的特殊功能是什么?

2 个答案:

答案 0 :(得分:1)

你要找的东西是权重属性,它将你的LinearLayout分成两个相等的部分。

秘密是 android:layout_weight =“1” learn more

答案 1 :(得分:0)

如果您的LinearLayout是垂直方向,则每个具有layout_weight属性的项目必须将layout_height设置为0

如果是水平LinearLayout,你必须将layout_width设置为0,如果它有layout_weight