您的位置:首页 > 移动开发 > Android开发

Android TextView内容过长加省略号,点击显示全部内容

2015-12-24 13:59 676 查看



这是详情页面:



大多数标题一行能显示完,但是一部分的标题过长,在app上显示不完

,弄2行不美观,一行又不满足需求

so……….

[code]  <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp"
                    android:layout_marginTop="10dp"
                    android:orientation="horizontal" >

                    <TextView
                        android:id="@+id/detail_job_name"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_centerVertical="true"                               android:layout_toLeftOf="@+id/detail_job_release_time"
                        android:ellipsize="end"
                        android:singleLine="true"
                        android:maxEms="12"
                        android:text="Android开发"
                        android:textColor="@color/black"
                        android:textSize="19sp" />

                    <TextView
                        android:id="@+id/detail_job_release_time"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_centerVertical="true"
                        android:layout_marginRight="10dp"
                        android:text="10-10"
                        android:textColor="@color/black"
                        android:textSize="14sp" />
                </RelativeLayout>


在Android TextView中有个内容过长加省略号的属性,即ellipsize,用法如下:

在xml中:

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

android:ellipsize=”start”   省略号在开头

android:ellipsize=”middle” 省略号在中间

android:ellipsize=”marquee” 跑马灯

最好加一个TextView显示行数的约束,例如:android:singleline=”true”或者android:lines=”2”

[code]    job_name.setOnClickListener(new OnClickListener() {
                    boolean flag=true;
                    @Override
                    public void onClick(View arg0) {
                         if(flag){      
                             flag = false;
                             job_name.setEllipsize(null); // 展开
                             job_name.setSingleLine(flag);
                            }else{
                             flag = true;
                     job_name.setEllipsize(
                         TextUtils.TruncateAt.valueOf("END")); // 收缩
                             job_name.setSingleLine(flag);
                            }
                           }
                });
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: