android布局重量和重力问题

android布局重量和重力问题,android,android-layout,Android,Android Layout,我试图更好地理解android的布局。在下面的例子中,我通过反复试验解决了问题。我想了解它为什么起作用 我正在另一个布局中设置“标题”行。我希望第一部分使用尽可能多的宽度,第二部分只使用它需要的宽度。所以我将布局_1的权重设置为1,布局_2的权重设置为0。最初,我的布局和宽度都是匹配的。这导致布局_2占据整个宽度,并使布局_1消失。我最终通过在布局2上设置宽度来包装内容来修复它。我理解布局_2具有宽度环绕内容是有意义的。但是我不明白为什么布局2匹配父级会占据整个宽度,而布局1也有宽度匹配父级 下

我试图更好地理解android的布局。在下面的例子中,我通过反复试验解决了问题。我想了解它为什么起作用

我正在另一个布局中设置“标题”行。我希望第一部分使用尽可能多的宽度,第二部分只使用它需要的宽度。所以我将布局_1的权重设置为1,布局_2的权重设置为0。最初,我的布局和宽度都是匹配的。这导致布局_2占据整个宽度,并使布局_1消失。我最终通过在布局2上设置宽度来包装内容来修复它。我理解布局_2具有宽度环绕内容是有意义的。但是我不明白为什么布局2匹配父级会占据整个宽度,而布局1也有宽度匹配父级

下面是一个代码示例

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_height="match_parent"
          android:layout_width="match_parent">

<LinearLayout android:id="@+id/header_layout_1"
              android:orientation="horizontal"
              android:layout_height="wrap_content"
              android:layout_width="match_parent"
              android:layout_gravity="center"   >

    <LinearLayout android:orientation="horizontal"
                  android:layout_height="match_parent"
                  android:layout_width="match_parent"
                  android:gravity="center"
                  android:layout_weight="1">
        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="some text"/>
    </LinearLayout>

   <!-- changing width on header_layout_2 to match_parent takes over layout, wrap_content gives me what I want -->
    <LinearLayout android:id="@+id/header_layout_2"
            android:orientation="horizontal"
                  android:layout_height="match_parent"
                  android:layout_width="match_parent"
                  android:layout_weight="0">
        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="some more text"/>
    </LinearLayout>
</LinearLayout>
<!--end of header-->
</LinearLayout>

你可以在互联网上找到很多关于线性布局和布局的资料和博客

有一些有用的网站: