如何设置文本对齐?

时间:2015-09-16 18:16:56

标签: android android-view textview

我希望TextView以下图中的红线结束,而不是三个蓝色文字视图的起始行。

怎么样?

enter image description here

layout.xml

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="49dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_margin="20dp"
android:id="@+id/relative">

<ImageView
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:background="@drawable/progress"
    android:id="@+id/imageView"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="50dp"
    android:text="Progress"
    android:id="@+id/textView"
    android:autoText="false"
    android:textColor="#1A237E"
    android:textSize="@dimen/abc_dialog_padding_top_material"
    android:layout_alignParentTop="true"
    android:layout_toRightOf="@+id/textView2"
    android:layout_toEndOf="@+id/textView2"
    android:gravity="center" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:text=" absolute"
    android:id="@+id/textView2"
    android:textIsSelectable="true"
    android:textSize="@dimen/abc_action_bar_icon_vertical_padding_material"
    android:textColor="#FF6D00"
    android:gravity="center"
    android:layout_alignBottom="@+id/above"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/above"
    android:paddingBottom="10dp"

    android:background="#ffd8f1ff"
    android:padding="5dp"
    android:layout_below="@+id/textView"
    android:layout_alignRight="@+id/textView"
    android:layout_alignEnd="@+id/textView"
    android:layout_gravity="right"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:text=" percentage"
    android:id="@+id/textView4"
    android:textSize="@dimen/abc_action_bar_icon_vertical_padding_material"
    android:textColor="#FF6D00"
    android:gravity="center"
    android:layout_below="@+id/textView2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/below"
    android:paddingTop="10dp"
    android:background="#ffd8f1ff"
    android:padding="5dp"
    android:layout_below="@+id/above"
    android:layout_alignLeft="@+id/above"
    android:layout_alignStart="@+id/above"
    android:layout_gravity="right" />
<TextView
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:text=" goal"
    android:id="@+id/textView5"
    android:textSize="@dimen/abc_action_bar_icon_vertical_padding_material"
    android:textColor="#FF6D00"
    android:gravity="center"
    android:layout_below="@+id/textView4"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/goal"
    android:paddingTop="10dp"
    android:background="#ffd8f1ff"
    android:padding="5dp"
    android:layout_below="@+id/below"
    android:layout_alignLeft="@+id/below"
    android:layout_gravity="right"
    android:layout_alignParentLeft="false" />

提前完成。

3 个答案:

答案 0 :(得分:2)

首先,将三个蓝色TextView与Progress TextView对齐。这样,所有蓝色TextViews都将正确对齐。然后,使用layout_gravity=right而不是gravity=right。这将正确对齐蓝色TextViews中的文本。最后,将所有蓝色TextViews设为to_rightOf textview4,这是最长的TextView。进行这些调整将使布局如下所示:

Layout after adjustments

以下是代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/relative"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_margin="20dp"
android:layout_marginTop="49dp">

<ImageView
    android:id="@+id/imageView"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"/>

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_toEndOf="@+id/textView2"
    android:layout_toRightOf="@+id/textView2"
    android:autoText="false"
    android:gravity="center"
    android:text="Progress"
    android:textColor="#1A237E"
    android:textSize="@dimen/abc_dialog_padding_top_material"/>

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:layout_alignBottom="@+id/above"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:gravity="center"
    android:text=" absolute"
    android:textColor="#FF6D00"
    android:textIsSelectable="true"
    android:textSize="@dimen/abc_action_bar_icon_vertical_padding_material"/>

<TextView
    android:id="@+id/above"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignEnd="@+id/textView"
    android:layout_alignRight="@+id/textView"
    android:layout_below="@+id/textView"
    android:layout_marginLeft="5dp"
    android:layout_toRightOf="@+id/textView4"
    android:background="#ffd8f1ff"
    android:gravity="right"
    android:padding="5dp"
    android:paddingBottom="10dp"
    android:text="18%"
    />

<TextView
    android:id="@+id/textView4"
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_below="@+id/textView2"
    android:gravity="center"
    android:text=" percentage"
    android:textColor="#FF6D00"
    android:textSize="@dimen/abc_action_bar_icon_vertical_padding_material"/>

<TextView
    android:id="@+id/below"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/above"
    android:layout_alignRight="@+id/textView"
    android:layout_alignStart="@+id/above"
    android:layout_below="@+id/above"
    android:background="#ffd8f1ff"
    android:padding="5dp"
    android:paddingTop="10dp"
    android:text="12.4%"
    />

<TextView
    android:id="@+id/textView5"
    android:layout_width="wrap_content"
    android:layout_height="30dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_below="@+id/textView4"
    android:gravity="center"
    android:text=" goal"
    android:textColor="#FF6D00"
    android:textSize="@dimen/abc_action_bar_icon_vertical_padding_material"/>

<TextView
    android:id="@+id/goal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/below"
    android:layout_alignParentLeft="false"
    android:layout_alignRight="@id/textView"
    android:layout_below="@+id/below"
    android:background="#ffd8f1ff"
    android:gravity="right"
    android:padding="5dp"
    android:paddingTop="10dp"
    android:text="0%"/>

答案 1 :(得分:0)

在你的情况下,这与我通常设置的不同。但在这种情况下,它更容易添加

 <View
        android:layout_width="0dp"
        android:layout_alignRight="@+id/textView"
        android:layout_alignEnd="@+id/textView"
        android:id="@+id/holder"
        android:layout_height="0dp"/>

然后对于要与右侧对齐的视图添加

android:layout_toLeftOf="@+id/holder"

答案 2 :(得分:0)

相反,您可以将这两个水平TextView放在一个 LinearLayout并将 LinearLayout 设置在百分比的TextView下方。这样做可以使TextView的对齐具有更多的可自定义性。