即使textview这么长,如何在textview的末尾进行查看?

时间:2018-03-04 22:42:04

标签: android android-layout android-linearlayout android-relativelayout

我有这个布局,我有文本视图和旁边的图标。 但是,文本是动态变化的,所以有时它会将图标推出屏幕太长。 我试图为文字添加重量,但它会在屏幕右侧显示我不想要的图标,我只是想在文本后面,即使文本转到下一行。

有我的代码:

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

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/Text"
                    android:layout_marginLeft="25dp"
                    android:text="llllll"
                    />

                <android.support.v7.widget.AppCompatImageButton
                    android:id="@+id/icon"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginRight="10dp"
                    android:background="@android:color/transparent"
                    android:src="@drawable/ic_arrow_drop_down_black_24dp" />

            </LinearLayout>

任何想法:(?

4 个答案:

答案 0 :(得分:0)

您可以在HTML中使用<img>标记

知道如何做到这一点,请参阅此qution (is-it-possible-to-display-inline-images-from-html-in-an-android-textview)

答案 1 :(得分:0)

将文本视图放在相对布局中,匹配父级作为宽度和高度换行内容。 将文本视图设置为相同的维度,即将父级作为宽度和高度作为换行内容。

使图像按钮具有相同的相对布局,并使用alignParentEnd作为true。您会看到它总是添加文本视图的结尾。

如果选择这样做,请设置一些maxEms和ellipsize end,使文本不与按钮重叠。您将通过自己测试来获得价值,通常取决于文本大小。

因为你想要它作为一个按钮,我建议这样做。如果你想要它只是一个没有用的图标,你应该查看文本视图的drawableEnd属性。

答案 2 :(得分:0)

您可以使用ConstraintLayout来处理此问题。

<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/text"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintHorizontal_bias="0"
        app:layout_constraintHorizontal_chainStyle="packed"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toLeftOf="@+id/image"
        app:layout_constraintWidth_default="wrap"/>

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintLeft_toRightOf="@+id/text"
        app:layout_constraintRight_toRightOf="parent" />

</android.support.constraint.ConstraintLayout>

答案 3 :(得分:0)

只需在textview“ android:maxWidth”中添加一条属性行,如下所示:

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/Text"
                android:layout_marginLeft="25dp"
                android:text="llllll"
                android:maxWidth="100dp" //it can be your specific size
                />

            <android.support.v7.widget.AppCompatImageButton
                android:id="@+id/icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="10dp"
                android:background="@android:color/transparent"
                android:src="@drawable/ic_arrow_drop_down_black_24dp" />

        </LinearLayout>