如何将textview与drawable TextView的“text”部分对齐?

时间:2015-08-18 13:35:09

标签: android textview

我想将文字hello world与文字Medium Text对齐。有什么技巧可以做到吗?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">


    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/ic_action_favorite"
        android:drawableRight="@drawable/ic_hardware_keyboard_arrow_right"
        android:gravity="center_vertical"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/detail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="hello world"
        android:layout_alignLeft="@id/title"
        android:layout_below="@id/title"/>
</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

我不知道如何单独使用layout_params来对齐文本的开头位置。您可以更改布局以将图像与中间文本分开,也可以使用相同大小(但完全透明)的图像作为hello world文本的drawableLeft。

我可能会这样做:

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

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_action_favorite"
        ... />

    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/image"
        android:layout_alignBaseline="@id/image"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/detail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/title"
        android:layout_below="@id/title"
        android:text="hello world" />
</RelativeLayout>

答案 1 :(得分:0)

我认为这就是你想要的:

<LinearLayout android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <ImageView android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:src="@drawable/ic_action_favorite"
            android:paddingRight="10dp"/>

        <LinearLayout android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView android:id="@+id/title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Medium Text">
            </TextView>

            <TextView  android:id="@+id/detail"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Hello world">
            </TextView>

        </LinearLayout>
    </LinearLayout>

我希望这可以帮到你。