首页 > 解决方案 > Android Java如何在RelativeLayout中填充父级

问题描述

我正在尝试在具有 wrap_content 宽度长度的 RelativeLayout 中添加 3 个 LinearLayout,但我没有找到任何方法来填充父级。RelativeLayout 不支持重量,所以我需要一个替代方案。 我的布局预览

<RelativeLayout
    android:id="@+id/gameModeLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/textView3">

    <LinearLayout
        android:id="@+id/mode1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/mode2"
        android:orientation="vertical"
        android:padding="12dp">

        <TextView
            android:id="@+id/textMode1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/ubuntutitling"
            android:text="Üretici" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/mode2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:orientation="vertical"
        android:padding="12dp">

        <TextView
            android:id="@+id/textMode2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/consolaz"
            android:text="İşleyici" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/mode3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toEndOf="@+id/mode2"
        android:orientation="vertical"
        android:padding="12dp">

        <TextView
            android:id="@+id/textMode3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/consolaz"
            android:text="Satıcı" />

    </LinearLayout>

</RelativeLayout>

但是我也可以使用 LinearLayout 而不是 RelativeLayout 但也许还有其他解决方案。

标签: javaandroidandroid-relativelayout

解决方案


正如 Umer 建议的那样,最好的选择是使用约束布局,但是如果你想使用线性和相对布局,一个可能的解决方案可能是

<RelativeLayout
    android:id="@+id/gameModeLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/textView3">
  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightSum="3">
    <LinearLayout
      android:id="@+id/mode1"
      android:layout_weight="1"/>
    <LinearLayout
      android:id="@+id/mode2"
      android:layout_weight="1"/>
    <LinearLayout
      android:id="@+id/mode3"
      android:layout_weight="1"/>
 </LinearLayout>
</ReativeLayout>

 

推荐阅读