android 一行有多个textview 当内容过长时 怎么让第一个显示省略号 最后一个全部显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 一行有多个textview 当内容过长时 怎么让第一个显示省略号 最后一个全部显示相关的知识,希望对你有一定的参考价值。

我一行又两个TextView 但是当内容过长时,后面那个TextView的内容会显示省略号,我现在想让后面的Textview中内容全部显示,前面那个Textview多出来的部分显示省略号

TextView中有个ellipsize属性,作用是当文字过长时,该控件该如何显示,解释如下:

    android:ellipsize=”start”—–省略号显示在开头

    android:ellipsize=”end”——省略号显示在结尾

    android:ellipsize=”middle”—-省略号显示在中间

    android:ellipsize=”marquee”–以跑马灯的方式显示(动画横向移动)

文字左右滚动三个属性: 

    android:singleLine="true" 

    android:ellipsize="marquee" 

    android:marqueeRepeatLimit="marquee_forever"

参考技术A <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/activity_horizontal_margin"
            android:layout_marginEnd="@dimen/activity_horizontal_margin"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp"
            android:gravity="center_vertical"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/cabinet_location_text"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:singleLine="true"
                android:ellipsize="end"
                android:textSize="16sp" />

            <TextView
                android:id="@+id/packagebox_no_text"
                android:layout_width="60dp"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:paddingStart="3dp"
                android:paddingTop="2dp"
                android:paddingEnd="3dp"
                android:paddingBottom="2dp"
                android:layout_marginLeft="5dip"
                android:background="@drawable/round_orange_bg"
                android:textColor="@android:color/white"
                android:textSize="@dimen/font_medium" />
        </LinearLayout>


后面的textview固定宽度android:layout_width="60dp",第一个textview设置android:layout_weight="1",android:layout_width="0dp"就能实现效果。

参考技术B 实现是可以实现,但是你确定必须第二个textview要显示完整/?追问

是的,不管屏幕大小,第二个必须完整显示

追答

你的第二个textView的参数给我看一些,你是不是加了singleline了,导致显示不完整~不然的话它默认情况下(wrap_content)就会全部显示,遇到边界自己换行~

追问

追答

你有一个singleline如果超出了肯定显示不完整而用省略号代替的,你这个需求就会复杂多了,因为还要考虑到美观性等等,如果简单的想要显示完整去掉singleline这个属性就ok了。

追问

如果没有singleline 他就会换行,我现在只要显示一行,并且后面的textView全部显示,多出来的将前面的textview中内容显示省略号

追答

这个需求有点不切实际,如果你第二个textview占了整个一行都没有显示完怎么办。按照你的意思,我觉得做不到,哪怕用代码控制也很难。
我认为需要改需求,比如点击显示完整信息等~这么搞实在没必要

参考技术C 这两个textview的内容一样吗?追问

不一样,内容并且不定,内容是网络获取的

追答

你的意思是两个文本框宽度可变?

追问

对,只要一行显示不下 就将第一个textView中的字 后面显示省略号

参考技术D 不知道你用的那种布局方式啊追问

只要能实现后面的textView全部显示,什么布局方式都可以

以上是关于android 一行有多个textview 当内容过长时 怎么让第一个显示省略号 最后一个全部显示的主要内容,如果未能解决你的问题,请参考以下文章

android------解决editText只输入一行和textView不显示过多的内容

android------解决editText只输入一行和textView不显示过多的内容

android中TextView内容竖向显示

android LinearLayout中嵌套一个textview,当textview更新时会触发LinearLayout也更新。用啥办法可以让

Android:以编程方式添加 Textview 不将文本换行到下一行

Android上的双文本TextViews [重复]