指定textview收缩的文本组.md

作者: Stake | 来源:发表于2017-10-17 22:58 被阅读81次

    在开发中中我们可能遇到这样的需求:在一行文字中展示多项数据元素,不能元素有着不同的排列顺序,有的靠左,有的靠右,有的在某项数据的右侧,等等……
    比如下图,在一行文字中显示简介年龄职业

    pic1
    此时当我们简介内容很长时候,就会挤压年龄职业显示,但是这些页面元素中,职业显示的等级最低,希望挤压 简介的显示,做到如下图显示
    pic2
    一般处理这种情况,我们可能要手动计算每一个textview的显示,然后用屏幕宽度减去每一个textview宽度,把剩余的空间留给简介的textview。

    这里有有个简单的处理方式:通过weight和space来实现,很容易读懂,就不做代码分析。

    <LinearLayout
            android:id="@+id/layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
    
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_weight="1"
                android:orientation="horizontal">
    
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center_vertical"
                    android:orientation="horizontal">
    
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="简介:" />
    
                    <TextView
                        android:id="@+id/txt"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:ellipsize="end"
                        android:maxLines="1"
                        android:text="1234567890" />
    
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text=" 年龄:30" />
    
                </LinearLayout>
    
                <android.support.v4.widget.Space
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1" />
            </LinearLayout>
    
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text=" 职业:IT" />
        </LinearLayout>
    

    demo 地址https://github.com/stake-zh/AutoShrinkTexGroup

    相关文章

      网友评论

        本文标题:指定textview收缩的文本组.md

        本文链接:https://www.haomeiwen.com/subject/labjuxtx.html