在应用开发的过程中,碰到一个需求就是需要在列表中展示文本时,当文本内容过多时,就需要将文本全文展示,这是考虑到当代码需要写到适配器中,而无法与应用的生命周期控制相关时的措施 // /*查看全文按钮 java代码 ViewTreeObserver observer = text.getViewTreeObserver(); // textAbstract为TextView控件 observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { ViewTreeObserver obs = text.getViewTreeObserver(); obs.removeGlobalOnLayoutListener(this); if (text.getLineCount() >= 4) { text.setLines(4); text.setEllipsize(TextUtils.TruncateAt.END); showall.setVisibility(View.VISIBLE); } } }); showall.setOnClickListener(new View.OnClickListener() { boolean flag=true; @Override public void onClick(View view) { if(flag) { text.setSingleLine(false);//这一句不单单是设置文本显示单行显示,还有个重要的作用就是其内部运行的applySingleLine() text.setEllipsize(null); flag=false; }else{ flag=true; text.setMaxLines(4); text.setEllipsize(TextUtils.TruncateAt.END); } } }); //layout.xml文件布局:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.xuganwen.testtextview.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="全文" android:visibility="gone" android:layout_below="@id/text" android:id="@+id/showall" /> </LinearLayout>
需求实现:实现文本框多行展示时显示“全文”的操作
最新推荐文章于 2024-04-21 18:11:50 发布