水平对齐可在Android中包含多行的TextView

时间:2017-06-24 19:23:01

标签: android android-layout textview

我的问题如下。我有4个水平对齐的TextView。在这4个文本视图中,前2个只能占用1行,而其他2个可以占用1行或2行。但是我希望如此,当我转到第二行时,这将继续在第一个textView,在左边(好像它是所有独特的textview),而不是在textview开始的地方下面。想想facebook post,例如第一个textview是用户名,第二个是他执行的动作,如果动作太长,那么文本将继续在用户名下。 现在我的代码如下:

<LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true">

            <TextView
                android:id="@+id/status_display_name"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:textColor="?android:textColorPrimary"
                android:textStyle="normal|bold"
                android:ellipsize="end"
                android:maxLines="1"
                android:text="Name "
                 />

            <TextView
                android:id="@+id/status_display_family_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="?android:textColorPrimary"
                android:maxLines="1"
                android:ellipsize="end"
                android:text="Family name"
                android:paddingRight="@dimen/status_display_name_right_padding"/>
            <TextView
                android:id="@+id/status_display_action"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="?android:textColorSecondary"
                android:maxLines="2"
                android:ellipsize="end"
                android:text="has done " />
            <TextView
                android:id="@+id/status_display_item_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="?android:textColorPrimary"
                android:maxLines="2"
                android:ellipsize="end"
                android:text="My item title" />
        </LinearLayout>

1 个答案:

答案 0 :(得分:0)

我建议你解决问题的最佳方法是使用One(1)而不是Four(4)文本视图。附加四个文本视图的所有文本,并将其设置为单个文本视图,如下所示:

 yourTextView.setText(displayName + " " + familyName + " " + displayAction + " " + displayItemTitle);

你的布局将是这样的:

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

        <TextView
            android:id="@+id/your_single_textview"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:textColor="?android:textColorPrimary"
            android:textStyle="normal|bold"
            android:text="Name "
             />

    </LinearLayout>

如果您想将某些文本设置为粗体但是某些文本正常则可以实现。检查此链接:

how to make a specific text on TextView BOLD