【问题标题】:Crop textView in LinearLayout在 LinearLayout 中裁剪 textView
【发布时间】:2014-09-29 07:31:28
【问题描述】:

我有带有两个 TextView 的 LinearLayout - textNametextPricetextName 的属性:

android:layout_width="wrap_content"
android:layout_height="wrap_content"

textPrice的属性:

android:layout_width="fill_parent"
android:layout_height="wrap_content"

如果textName 很长,它会延伸到整行并关闭textPrice

这是我的 xml 标记:

<LinearLayout
        android:id="@+id/textNameTimeHolder"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/thumbnail"
        android:layout_toRightOf="@+id/thumbnail" android:layout_alignBottom="@+id/thumbnail">
    <TextView
            android:id="@+id/textName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Неудержимые 3"
            android:textColor="#040404"
            android:typeface="sans"
            android:textSize="15sp"
            android:textStyle="bold"
            android:singleLine="true"
            android:layout_toLeftOf="@+id/textPrice"/>
    <TextView
            android:id="@+id/textPrice"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15sp"
            android:text="150 - 220 сом"
            android:layout_marginRight="5dp"
            android:layout_gravity="right"/>
</LinearLayout>

如果textName(使用singleline)太长,我该如何裁剪它?

谢谢。

【问题讨论】:

    标签: android android-linearlayout textview android-textattributes


    【解决方案1】:

    TextView 中设置ellipsize 属性,最好在TextView 中都使用weight

    <LinearLayout
            android:id="@+id/textNameTimeHolder"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/thumbnail"
            android:layout_toRightOf="@+id/thumbnail"
            android:layout_alignBottom="@+id/thumbnail">
        <TextView
                android:id="@+id/textName"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ellipsize="end"
                android:text="Неудержимые 3"
                android:textColor="#040404"
                android:typeface="sans"
                android:textSize="15sp"
                android:textStyle="bold"
                android:singleLine="true"/>
        <TextView
                android:id="@+id/textPrice"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ellipsize="end"
                android:gravity="right"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="15sp"
                android:text="150 - 220 сом"
                android:layout_marginRight="5dp"
                android:layout_gravity="right"/>
    </LinearLayout>
    

    【讨论】:

      【解决方案2】:

      设置

        android:ellipsize="end"
      

      为您的TextView

      【讨论】:

        【解决方案3】:

        您可以使用android:maxEMS(EMS 是一个字符占用的最大空间,技术上是 E 或 M 占用的空间)并选择特定的长度。如果文本太长,它将自动附加三个点(...)。

        【讨论】:

          【解决方案4】:

          你应该在你的文本视图上设置android:ellipsize

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-12-03
            • 2021-12-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多