这是我正在尝试的代码。 但是layout_gravity右边的文本视图在水平线性布局中没有向右移动。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_gravity="left"
android:gravity="center_vertical"
android:text="This Year"
android:textColor="@color/gray_dark"
android:textSize="18sp" />
<TextView
android:id="@+id/tvHomeIncomeThisYear"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:gravity="center_vertical"
android:layout_gravity="right"
android:text="$0.00 USD"
android:textColor="#000000"
android:textSize="18sp" />
</LinearLayout>
LinearLayout 的所有子项都一个接一个地堆叠。对于您的目标,您可以使用 FrameLayout,也可以添加空间作为另一个子视图对象:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_gravity="left"
android:gravity="center_vertical"
android:text="This Year"
android:textColor="@color/gray_dark"
android:textSize="18sp" />
<Space
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
android:id="@+id/tvHomeIncomeThisYear"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:gravity="center_vertical"
android:layout_gravity="right"
android:text="$0.00 USD"
android:textColor="#000000"
android:textSize="18sp" />
</LinearLayout>
Space
需要 API 级别 14 或以上。否则,您可以使用 View
.
将LinearLayout
更改为RelativeLayout
,将android:layout_gravity="right"
更改为android:layout_alignParentRight="true"
。删除android:orientation="horizontal"
。
使用相对布局使用它
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_gravity="left"
android:gravity="center_vertical"
android:text="This Year"
android:textColor="@color/gray_dark"
android:textSize="18sp" />
<TextView
android:id="@+id/tvHomeIncomeThisYear"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:gravity="center_vertical"
android:layout_alignParentRight="true"
android:text="$0.00 USD"
android:textColor="#000000"
android:textSize="18sp" />
</RelativeLayout>
只需将 TextView tvHomeIncomeThisYear
宽度更改为 match_parent
并将其gravity
和layout_gravity
分别设置为 right|center_vertical
和 center_vertical
:
<TextView
android:id="@+id/tvHomeIncomeThisYear"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="right|center_vertical"
android:layout_gravity="center_vertical"
android:text="$0.00 USD"
android:textColor="#000000"
android:textSize="18sp" />
您实际上不需要将父视图更改为 LinearLayout 以外的其他视图,或者插入其他视图以充当间隔符等,只需将值为"1"的 layout_weight
属性添加到最左侧的 TextView 并将其layout_width
设置为零 (0dp):
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:orientation="horizontal" >
<TextView
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:gravity="center_vertical"
android:text="This Year"
android:textColor="@color/gray_dark"
android:textSize="18sp" />
<TextView
android:id="@+id/tvHomeIncomeThisYear"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:gravity="center_vertical"
android:text="$0.00 USD"
android:textColor="#000000"
android:textSize="18sp" />
</LinearLayout>
然后,您还可以删除 TextView 的 android:layout_gravity 属性,因为它们不是必需的。