在安卓开发中我们最常见的控件就是TextView,这个控件继承于View,是Google提供的展示文本的一个view,我们经常在开发过程中用到它,我们先看一个最常见的情形:
UI设计师一般给我们是类似这种sketch的切图,我们可以看到这个textView的宽度和高度,颜色值还有字体大小,我们在layout的xml文件上写这个控件:
<TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:textColor="#323232" android:textSize="14sp" />
一般来说我们会把textView的width和height都设成wrap_content,因为让textSize来决定这个textView占据的空间。
当然有时候产品会让这个textView只能显示单行,如果多行这一行就显示...,那么我们可以这样做:
<TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:textColor="#323232" android:textSize="14sp" android:maxLines="1" android:ellipsize="end" />
android:maxLines表示textView可以显示多少行,ellipsize表示TextView的内容中哪个位置显示截断效果,如果产品想实现xxx...xxx的效果,那么我们可以设置ellipsize="middle"
在很多情况下,一个页面很多的textView的属性其实是一样的,在这种情况下我们要把textView的一些属性抽取出来放到styles.xml中,然后写布局的时候就会更简洁
<style name="period_table_content"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:gravity">center</item> <item name="android:textColor">#323232</item> <item name="android:textSize">14sp</item> </style>
然后写textView的时候就可以这样写
<TextView android:layout_alignParentStart="true" android:id="@+id/tv_period_start" style="@style/period_table_content" android:layout_marginLeft="16dp" />