如何在文本视图中将文本右对齐

时间:2016-06-05 06:05:24

标签: android android-layout android-studio

搜索并找到了许多解决方案,但似乎没有任何工作在我的情况下。 我并排2 TextViews。这就是我预览的内容。

enter image description here

我想要

enter image description here

我写过以下代码,但它没有给我想要的输出。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:orientation="horizontal">


        <TextView
            android:id="@+id/tvContactsHeading"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:textSize="18sp"
            android:paddingRight="10dp"
            android:text="Heading "
            android:textStyle="bold"
            android:fontFamily="sans-serif-regular"
            />

        <TextView
            android:id="@+id/tvContactsText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textSize="18sp"
            android:text="Text "
            android:textStyle="normal"
            android:fontFamily="sans-serif-regular"
            />


    </LinearLayout>


</RelativeLayout>

如果我使用android:layout_gravityleftright,则会将整个文本放在左侧或右侧。我想将两个text in center放在一起,一个从右角和其他从左角开始。

请指导我。

5 个答案:

答案 0 :(得分:2)

我自己检查了以下XML文件..

为TextView设置 android:layout_weight =&#34; 1&#34; ,并为两者制作 android:layout_width =&#34; 0dp&#34; 的TextView ..

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">


<LinearLayout
    android:id="@+id/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:layout_weight="1"
        android:fontFamily="sans-serif-regular"
        android:gravity="right"
        android:paddingRight="10dp"
        android:text="this code is working fine for me"
        android:textSize="18sp"
        android:textStyle="bold" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:fontFamily="sans-serif-regular"
        android:gravity="left"
        android:text="this is right side of the layout"
        android:textSize="18sp"
        android:textStyle="normal" />


   </LinearLayout>

 </RelativeLayout>

希望它能帮助你:)

答案 1 :(得分:1)

    <TextView
        android:id="@+id/tvContactsHeading"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:paddingRight="10dp"
        android:text="Heading "
        android:textStyle="bold"
        android:gravity="right|center_vertical|center_horizontal"
        android:fontFamily="sans-serif-regular"
        />

    <TextView
        android:id="@+id/tvContactsText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:text="Text "
        android:textStyle="normal"
        android:gravity="center|center_vertical|center_horizontal"
        android:fontFamily="sans-serif-regular"
        />

答案 2 :(得分:1)

您可以为每个文本添加android:layout_weight = 1,然后根据需要更改重力

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:orientation="horizontal">


    <TextView
        android:id="@+id/tvContactsHeading"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textSize="18sp"
        android:paddingRight="10dp"
        android:text="Heading "
        android:textStyle="bold"
        android:fontFamily="sans-serif-regular"
        android:layout_weight="1"
        />

    <TextView
        android:id="@+id/tvContactsText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textSize="18sp"
        android:text="Text "
        android:textStyle="normal"
        android:fontFamily="sans-serif-regular"
        android:layout_weight="1"
        />


</LinearLayout>

你也可以用相对布局做得更好

答案 3 :(得分:1)

layout_width设置为match_parent,然后应用所需的重力。 LinearLayout不允许您在右侧放置项目。因此,您必须将TextView设置为完整宽度,以便可以为其内容应用重力。

其他选项是,您可以将LinearLayout替换为FrameLayoutFrameLayout允许绝对定位,LinearLayout不允许,这不需要将TextView设置为全宽。

答案 4 :(得分:1)

您必须将match_parent宽度提供给LinearLayout

使用此代码。

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:orientation="horizontal"
            android:weightSum="1">


            <TextView
                android:id="@+id/tvContactsHeading"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="right"
                android:textSize="18sp"
                android:text="HeadingShort"
                android:textStyle="bold"
                android:paddingRight="10dp"
                android:layout_weight="0.5"
                android:fontFamily="sans-serif-regular"
                />

            <TextView
                android:id="@+id/tvContactsText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:textSize="18sp"
                android:text="TextShort"
                android:textStyle="normal"
                android:layout_weight="0.5"
                android:fontFamily="sans-serif-regular"
                />


        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:orientation="horizontal"
            android:layout_weight="1.0"
            android:layout_marginTop="20dp">


            <TextView
                android:id="@+id/tvContactsHeading2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="right"
                android:textSize="18sp"
                android:text="HeadingLongggg"
                android:textStyle="bold"
                android:paddingRight="10dp"
                android:layout_weight="0.5"
                android:fontFamily="sans-serif-regular"
                />

            <TextView
                android:id="@+id/tvContactsText2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:textSize="18sp"
                android:text="HeadingLoggg"
                android:textStyle="normal"
                android:layout_weight="0.5"
                android:fontFamily="sans-serif-regular"
                />


        </LinearLayout>
    </RelativeLayout>

您的输出

enter image description here