java - 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 但也许还有其他解决方案。
解决方案
正如 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>
推荐阅读
- ios - 无法编辑 textField 和 textView
- c# - 如何使用 HTML 格式化 Asp.net SMTP 电子邮件?
- powershell - 管理员如何获取用户添加的“共享日历”?
- web - 使用 Heroku 和 Domain.com 部署自定义域
- r - terms.formula 数据参数无效
- javascript - Ajax 不适用于 Opera 和 Microsoft Edge
- python - “真正的大整数”在时间复杂度和基本算术运算方面意味着什么
- java - 通过 Java 的 ScriptEngine 使用 pandas 和其他库
- caching - 在 Xamarin.forms 中与 Akavache 的持久聊天消息
- java - 无法根据 file.length() 操作附加到文件