溢出时隐藏的Textview

时间:2016-08-17 16:15:20

标签: android android-layout

我有这个列表视图的布局:

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/lblDate"
            android:layout_marginLeft="10dp"
            android:textColor="@color/list_content"
            android:textSize="@dimen/list_site_content" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/lblDesc"
            android:layout_marginLeft="10dp"
            android:textColor="@color/list_content"
            android:textSize="@dimen/list_site_content" />

        <View
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="1"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Medium Text"
            android:id="@+id/lblImp"
            android:layout_marginLeft="10dp"
            android:textColor="@color/list_content"
            android:textSize="@dimen/list_site_content"
            android:gravity="right"/>

    </LinearLayout>

如何在TextView @ + id / lblDesc中创建文本,不要将textview @ + id / lblImp推出屏幕?

这是发生的事情的一个例子: [1]

还使用相对布局:

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

    <ImageView
        android:id="@+id/imgTipoDebito"
        android:layout_gravity="center"
        android:layout_width="@dimen/list_image_size"
        android:layout_height="@dimen/list_image_size"
        android:layout_alignParentLeft="true"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:id="@+id/lblData"
        android:layout_marginLeft="10dp"
        android:textColor="@color/list_content"
        android:textSize="@dimen/list_site_content"
        android:layout_toRightOf="@+id/imgTipoDebito"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:id="@+id/lblDescrizione"
        android:layout_marginLeft="10dp"
        android:textColor="@color/list_content"
        android:textSize="@dimen/list_site_content"
        android:layout_toRightOf="@+id/lblData"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:id="@+id/lblImporto"
        android:layout_marginLeft="10dp"
        android:textColor="@color/list_content"
        android:textSize="@dimen/list_site_content"
        android:gravity="right"
        android:layout_alignParentRight="true" />


</RelativeLayout>

结果如下: [2]

1 个答案:

答案 0 :(得分:1)

以下是一些建议。

<强> RelativeLayout的

TextView包裹在相对布局中并使用以下属性:

toLeftOf toRightOf

以上属性会强制TextView不会溢出到下一个TextView

为什么使用RelativeLayout代替LinearLayout

在这种情况下,目的是防止TextView的溢出。

带权重的LinearLayout

您可以使用现有的实现,但在weight的一部分中引入TextView属性。但是,只有在每个width 0的TextView属性。

时才会有效

e.g。

width="0dp" weight="1"

同样,这将强制TextView保持其大小并防止溢出。

<强>更新

如上所述,您需要使用toRightOftoLeftOf

因此,如果我们专注于中间TextView,您需要添加:

    android:layout_toLeftOf="@id/lblImporto"
    android:layout_toRightOf="@id/lblData"

这将确保TextView位于lblData的右侧和lblImporto的左侧 - 使其不会溢出。