Android 如何正确对齐两个视图的右边缘?
这是我问题的简化版本。我需要对齐两个文本视图的右边缘,使其显示如下:Android 如何正确对齐两个视图的右边缘?,android,android-layout,Android,Android Layout,这是我问题的简化版本。我需要对齐两个文本视图的右边缘,使其显示如下: a abcdefgh 以下是我的布局: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <TextView
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的宽度,而不是较长的文本的宽度。因此,我看不到TVS的完整文本
如果你能告诉我我错过了什么,我将不胜感激。提前感谢您的帮助。将它们都包装在
LinearLayout
中,并提供textviewsandroid: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>
你没有给它们添加重力!将这些属性添加到两个文本视图中,您将获得:
android:layout_width="match_parent"
android:gravity="right"
试试这个。。
你必须先定义最宽的一个来锚定东西,即使它在第一个下面,所以这可以做到:
<?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>
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>
问候,彼得不过,这不是他想要的。他似乎不想将所有文本都对齐到父对象的右侧。看起来他只想要两个文本视图,越长的对齐父视图的左侧,越短的对齐父视图的右侧。毗湿奴。谢谢你的帮助。然而,match_父母不适合我。它必须是包装内容。因为您使用了相对布局,所以tvFist将在tvSecond开始时平行,或在tvFist结束时平行,以保持彼此之间的关系。这很接近,但我无法正确进行布局。最顶端的RelativeLayout宽度设置为“wrap_content”。这与布局不符。它把整个东西都弄脏了,让它看起来像match_parent。好吧,我在另一个应用程序中以其他方式做了类似的事情。检查我的新答案。
<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>