介绍

在应用开发中,总会遇到一些类似于公告,说明等长文本的TextView,但是为了排版美观等因素,我们通常是要隐藏后半部的文本,只显示部分文字,然后在尾部会提供用户一个扩展/收缩的按钮,使得文本框可以在需要的时候扩展开来查看全文,这就需要实现一个ExpendableTextView,类似于ExpendableList。

原理

1、开始时使用android:lines来设置TextView的行数,点击按钮之后,解除限制。

2、使用android:ellipsize来设置文本的省略位置。

3、要记得设置android:layout_height="wrap_content",不然固定了高度,就没法实现了。

实现

main.xml布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.appupdate.MainActivity" ><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:ellipsize="end"android:lines="3"android:text="我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告我是说明我是公告"android:textColor="@android:color/black" /><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/textView1"android:layout_centerHorizontal="true"android:text="点击展开" /></RelativeLayout>

核心代码

   private TextView textView1;private Button button1;private boolean isExpend = false;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView1 = (TextView) findViewById(R.id.textView1);button1 = (Button) findViewById(R.id.button1);button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {if (!isExpend) {// 复原textView1.setMinLines(0);textView1.setMaxLines(Integer.MAX_VALUE);button1.setText("点击收缩");isExpend=true;} else {textView1.setLines(3);button1.setText("点击展开");isExpend=false;}}});}

运行之后看起来是这样的

找个时候好好重构一下,做一个自定义控件,实现真正意义上的ExpendableTextView

转载于:https://www.cnblogs.com/leestar54/p/4246068.html

Android实现ExpandableTextView可扩展TextView相关推荐

  1. android ExpandableTextView可伸缩的TextView

    类似微信朋友圈里面,当文章太长时会隐藏一部分,当点击展开时就全部显示,这样一种效果. 关于这个自定义ViewGroup: 1.onFinishInflate方法执行的时机 2.自定义的animatio ...

  2. android cbox listview特效,Android CheckBox和ImageView、Textview在ListView中显示...

    1.首先创建一个适配器类CheckBoxListViewAdapter,此类继承BaseAdapter类: package com.test; import java.util.ArrayList; ...

  3. Android尺子布局和自定义TextView

    Android尺子布局和自定义TextView 下面是具体实现: 新建项目:在UI中 <LinearLayout xmlns:android="http://schemas.andro ...

  4. Android 原生控件之一 TextView

    Android 原生控件之一 TextView 前言 来源 开始 XML属性 1.android:allowUndo 2.android:autoLink 3.android:autoSizeMaxT ...

  5. android 程序的后缀,Android Studio项目文件的扩展名是什么?

    使用项目根目录中build.gradle文件的import projectfunction(而不是文件夹本身!)在Android Studio中再次打开项目. 我认为".iml"是 ...

  6. android实现跑马灯效果,TextView实现跑马灯效果 就这么简单!

    一.方法 这里我们用两种方法来实现跑马灯效果,虽然实质上是一种 实质就是: 1.TextView调出跑马灯效果 2.TextView获取焦点 第一种: 1.TextView调出跑马灯效果 androi ...

  7. 暴力突破 Gradle 自动化项目构建(八)- Android 对 Gradle 的扩展:Variants、Transform

    一.前言 上一篇学习了如何自定义 Gradle 插件,本篇我们来学习下 Android 对 Gradle 的扩展:Variants(变体)以及 Transform.通过扩展可以让我们在自定义 Grad ...

  8. android 获取文件的扩展名和去掉文件的扩展名

    android 获取文件的扩展名和去掉文件扩展名的小例子,在此记录一下,需要的朋友可以参考一下: /** Java文件操作 获取文件扩展名* */public static String getExt ...

  9. android音频声调,Android自定义带拼音音调Textview

    本文实例为大家分享了Android自定义带拼音音调Textview的具体代码,供大家参考,具体内容如下 1.拼音textview,简单的为把拼音数组和汉字数组结合在一起多行显示 import andr ...

最新文章

  1. 领导者必须学会做的十件事情
  2. linux 如何查看tomcat实时的日志
  3. 【白话科普】上网时遇到的 404 是什么意思?
  4. C#的变迁史01 - C# 1.0篇
  5. H3C 帧中继初级配置(二)
  6. oracle 表空间异常增长过快解决方法
  7. ajax 模拟表单提交,Ajax模拟Form表单提交,含多种数据上传
  8. 政府网络安全意识提升 中小企业客户却有待培育
  9. 架构案例丨微信Android客户端架构演进之路
  10. 认证Authentication
  11. 借助Bilibili Evolved批量下载b站视频
  12. Apache Kafka核心组件和流程-协调器(消费者和组协调器)-设计-原理(入门教程轻松学)
  13. mp4播放器带后台开源源码
  14. 【华为 OJ 】等差数列
  15. python tokenize怎么用_tokenize --- 对 Python 代码使用的标记解析器 — Python 3.9.1 說明文件...
  16. 如何用数学课件制作工具奇数等分圆
  17. day2(sdasdasdasdasd)
  18. 程序员在家办公太无聊,推荐你看完这十部电影。收货满满
  19. 大文件上传Jquery 插件Uploadify-v2.1.4使用图解
  20. java集成蜂鸟配送

热门文章

  1. c语言函数 t啥意思,C语言函数大全(t开头)
  2. oracle 自治数据库 培训,Oracle数据库掌门人,Andrew Mendelsohn 谈自治数据库
  3. 归一化处理公式_特征工程连续特征的常见处理方式(含实例)
  4. 控制台应用和空项目有什么区别_农业项目经理和物联网项目经理有什么区别
  5. 苹果出5g手机吗_华为打响5G手机第一枪,苹果却扔出620亿“王炸”,任正非:榜样...
  6. sqoop增量导出mysql_sqoop定时增量导入导出
  7. diy nas配置推荐2019_在Windows Server 2019上配置NAS的方法
  8. android静态代码扫描,android 静态代码扫描
  9. R语言入门2---R语言基础绘图
  10. Apache ab测试工具使用方法(无参、get传参、post传参)