Android开发经验谈Android开发Android开发

指定textview收缩的文本组.md

2017-10-17  本文已影响81人  Stake

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

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

上一篇下一篇

猜你喜欢

热点阅读