[英]Android - Set Layout_Gravity programmatically for LinearLayout
[英]Why does layout_gravity set to left/right have no effect in horizontal LinearLayout?
我試圖有兩個TextView
的一個在父級的左側,另一個在右側。
我期望layout_gravity
足以解決問題。
但這是行不通的。 示例代碼:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="300dp"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LEFT"
android:textSize="14sp"
android:layout_gravity="left"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RIGHT"
android:textSize="14sp"
android:layout_gravity="right"
/>
</LinearLayout>
</LinearLayout>
我究竟做錯了什么?
嘗試這個:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="300dp"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="LEFT"
android:layout_weight=".5"
android:layout_gravity="start"
android:gravity="start"
android:textSize="14sp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="RIGHT"
android:layout_weight=".5"
android:layout_gravity="end"
android:gravity="end"
android:textSize="14sp"/>
</LinearLayout>
LinearLayout
不會將layout_gravity
用於其布局的方向。 您可以在水平LinearLayout
使用layout_gravity
來控制垂直放置的方式:頂部,中心或底部。
您可以將LinearLayout
更改為垂直,然后您的左/右重力將起作用,但是第二個TextView
將比第一個TextView
。 我認為這不是您想要的。
在我看來,您對LinearLayout
提供的布局邏輯不感興趣(這是將其子項一個接一個地放置)。 您只希望一個左對齊,一個右對齊。 如果將TextView
放在FrameLayout
,則可以使用重力來實現這種效果。
嘗試這種方式:編輯Eenvincible的答案...
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1"
>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:text="LEFT"
android:textSize="14sp"
android:layout_gravity="left"
/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:text="RIGHT"
android:textSize="14sp"
android:layout_gravity="right"
/>
</LinearLayout>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.