以下是我的问题的简化版本。我需要对齐两个文本视图的右边缘,使它们显示如下:
a
abcdefgh
这是我的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/tvFirst"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="a"
/>
<TextView
android:id="@+id/tvSecond"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tvFirst"
android:layout_alignRight="@id/tvFirst"
android:text="abcdefgh"
/>
</RelativeLayout>
虽然“a”和“h”确实对齐,但问题是布局的宽度是tvFirst的宽度而不是较长的文本。因此,我没有看到tvSecond的完整文本。
如果你能告诉我我错过了什么,我将不胜感激。提前感谢您的帮助。
答案 0 :(得分:1)
GridLayout和引力一起做了诀窍:
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/tvFirst"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="a"
android:layout_row="0"
android:layout_column="0"
android:layout_gravity="right"
/>
<TextView
android:id="@+id/tvSecond"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="abcdefgh"
android:layout_row="1"
android:layout_column="0"
/>
</GridLayout>
的问候,
彼得
答案 1 :(得分:0)
将它们全部包裹在LinearLayout
中,并提供文字视图android:textAlignment="viewEnd"
属性:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/tvFirst"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="viewEnd" />
<TextView
android:id="@+id/tvSecond"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="viewEnd" />
</LinearLayout>
答案 2 :(得分:0)
您没有向他们添加gravity
!将这些属性添加到TextViews中,您将获得它:
android:layout_width="match_parent"
android:gravity="right"
答案 3 :(得分:0)
Try this..
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:id="@+id/tvFirst"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="28dp"
android:text="a" />
<TextView
android:id="@+id/tvSecond"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tvFirst"
android:layout_below="@+id/tvFirst"
android:layout_marginTop="20dp"
android:text="abcdefgh" />
</RelativeLayout>
答案 4 :(得分:0)
你必须首先定义最宽的一个来锚定东西,即使它低于第一个,所以这样做:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tvSecond"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tvFirst"
android:text="abcdefgh" />
<TextView
android:id="@+id/tvFirst"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@id/tvSecond"
android:text="a" />
</RelativeLayout>