【问题标题】:Equally distribute Nested layouts using weights使用权重平均分配嵌套布局
【发布时间】:2020-12-09 08:29:15
【问题描述】:

我正在尝试平均分配 2 个作为线性布局的子级的 RelativeLayout。
但是,当权重=“1”和宽度=“0”时。它只是缩小成一条线。
我想要的:水平均匀分布
问题:它收缩成一条线

     <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="2"                     <!-- here is the problem -->
            android:layout_below="@id/commentry_text_view"
            android:id="@+id/score_and_life"
            android:paddingTop="16dp"
            android:orientation="horizontal">
        <RelativeLayout
            android:layout_weight="1dp"               <!-- Here Is weight -->
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/score"
            style="@style/Header_Text"
            android:id="@+id/score_text_view"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/socreDigit"
            android:layout_marginTop="3dp"
            android:layout_marginLeft="3dp"
            style="@style/secondary_text"
            android:id="@+id/Score_Digit_Text_View"
            android:layout_toRightOf="@id/score_text_view"/>
        </RelativeLayout>

            <RelativeLayout
                android:layout_weight="1dp"                    <!-- Here Is weight -->
                 android:layout_marginLeft="150dp"
                android:layout_width="0dp"
                android:layout_height="wrap_content">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/life"
                style="@style/Header_Text"
                android:id="@+id/life_text_view"
                />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/lifeDigit"
                    android:layout_toRightOf="@id/life_text_view"
                    android:layout_marginTop="3dp"
                    android:layout_marginLeft="3dp"
                    style="@style/secondary_text"
                    android:id="@+id/Life_count_Text_view"/>
            </RelativeLayout>
        </LinearLayout>

【问题讨论】:

    标签: android layout android-linearlayout android-layout-weight


    【解决方案1】:

    将它们都设置为 layout_weight="1",而不是 1dp。权重值是一个分数,1dp 是以像素为单位的度量,所以它会被混淆并将其计数为零

    顺便说一句,您可以删除weightSum="2"(这意味着您的全宽权重加起来为2)并将每个权重设置为0.5,即宽度的50%。哪个对您最有意义!

    【讨论】:

      【解决方案2】:

      我已经解决了您的问题,方法是从两个相对布局中将 android:layout_weight="1dp" 更改为 android:layout_weight="1" 并从两个布局中删除不必要的边距。请检查以下 XML 修复程序以解决您的问题。

      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout
          xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:weightSum="2"
          android:id="@+id/score_and_life"
          android:paddingTop="16dp"
          android:orientation="horizontal">
          <RelativeLayout
              android:layout_weight="1"
              android:layout_width="0dp"
              android:layout_height="wrap_content"
              >
              <TextView
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="score"
      
                  android:id="@+id/score_text_view"/>
      
              <TextView
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="socreDigit"
                  android:layout_marginTop="3dp"
      
      
                  android:id="@+id/Score_Digit_Text_View"
                  android:layout_toRightOf="@id/score_text_view"/>
          </RelativeLayout>
      
          <RelativeLayout
              android:layout_weight="1"
              android:layout_width="0dp"
              android:layout_height="wrap_content">
              <TextView
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="rfymkt,"
      
                  android:id="@+id/life_text_view"
                  />
              <TextView
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="ejnetjn"
                  android:layout_toRightOf="@id/life_text_view"
                  android:layout_marginTop="3dp"
                  android:layout_marginLeft="3dp"
      
                  android:id="@+id/Life_count_Text_view"/>
          </RelativeLayout>
      </LinearLayout>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-21
        • 2012-07-19
        • 1970-01-01
        • 2015-03-04
        相关资源
        最近更新 更多