簡體   English   中英

為什么將layout_gravity設置為left / right在水平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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM