简单操作4步即可实现文字展开收起功能:

1.布局写2个Textview 一个是内容 一个是按钮(收起和全文)

<TextView

android:layout_marginTop="@dimen/x64"

android:id="@+id/tv_content"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginBottom="8dp"

android:alpha="0.85"

android:ellipsize="end"

android:text="内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容内容"

android:textColor="@android:color/black"

android:textSize="14sp"/>

<TextView

android:id="@+id/tv_expand_or_fold"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="全文"

android:textColor="@color/colorPrimaryDark"

android:textSize="14sp"/>

2.设置 最高显示几行、折叠、展开、状态、变量

private final int MAX_LINE_COUNT = 3;//最大显示行数

private final int STATE_COLLAPSED = 2;//折叠状态

private final int STATE_EXPANDED = 3;//展开状态

private int state;

3.调用View中getViewTreeObserver()这个方法设置监听OnPreDrawListener

interface ViewTreeObserver.OnPreDrawListener 当一个视图树将要绘制时,所要调用的回调函数的接口类

tvContent.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {

@Override

public boolean onPreDraw() {

//这个回掉会调用多次,获取完行数后记得注销监听

tvContent.getViewTreeObserver().removeOnPreDrawListener(this);

//如果内容显示的行数大于最大显示行数

if (tvContent.getLineCount() > MAX_LINE_COUNT) {

tvContent.setMaxLines(MAX_LINE_COUNT);//设置最大显示行数

expandOrFold.setVisibility(View.VISIBLE);//显示“全文”

expandOrFold.setText("全文");

state = STATE_COLLAPSED;

}else{

//内容不多,小于最大显示行数,隐藏展开的textview

expandOrFold.setVisibility(View.GONE);

}

return true;

}

});

4.设置查看更多内容展开折叠的点击处理

//全文和收起的点击事件

expandOrFold.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Log.i(TAG, "onClick: "+state);

if (state == STATE_COLLAPSED) {

tvContent.setMaxLines(Integer.MAX_VALUE);

expandOrFold.setText("收起");

state = 3;

} else if (state == STATE_EXPANDED) {

tvContent.setMaxLines(MAX_LINE_COUNT);

expandOrFold.setText("全文");

state = 2;

}

}

});

写的不好,请多多指教!!!

仿微信朋友圈,文字展开全文,全文收起功能相关推荐

  1. android 微信朋友圈 全功能,Android仿微信朋友圈文字展开全文功能 Android自定义TextView仿微信朋友圈文字展开全文功能...

    Android自定义TextView仿微信朋友圈文字信息,展开全文功能 代码及注释如下: 首先写一个xml文件 showmore.xml: android:orientation="vert ...

  2. 自定义控件 仿微信朋友圈文字展开全文功能

    自定义TextView仿微信朋友圈文字信息,展开全文功能 代码及注释如下: 首先写一个xml文件 showmore.xml: <?xml version="1.0" enco ...

  3. android 微信朋友圈 全功能,Android自定义TextView仿微信朋友圈文字展开全文功能

    Android自定义TextView仿微信朋友圈文字信息,展开全文功能 代码及注释如下: 首先写一个xml文件 showmore.xml: android:orientation="vert ...

  4. Android仿微信朋友圈6之实现消息提醒功能

    之前有朋友问我消息提醒咋实现,我一直没有整理出来,今天就放出来.微信朋友圈的消息提醒就是收到朋友的评论后背景底部显示消息条数和评论用户,顶部是一张相册背景和当前用户昵称头像. 1.消息提醒的布局如下: ...

  5. Android仿微信朋友圈发图片和文字

    Android仿微信朋友圈发图片和文字的一个开源项目,其在github上的项目主页是:https://github.com/zhangphil/FangWeiXinPengYouQuanFaTuPia ...

  6. Android仿微信朋友圈2自定义点赞评论弹框

    最近在做类似微信朋友圈点赞评论的功能,有个点赞评论弹框交互,感觉效果很好,点击评论按钮弹框从按钮左边弹出,遇到了3个问题(弹出动画不对.弹框布局没有适配.弹出的位置显示不对),动画和布局好解决,弹出的 ...

  7. Android仿微信朋友圈3评论输入框及点击外部和列表滑动时隐藏输入框和键盘解决方法

    接着上一篇的评论点赞弹框之后,这次来说说微信的评论输入框,点击屏幕外部评论框和键盘消失,滑动列表时输入框和键盘也要消失,这里不是说一定要舔微信啥的,只是单纯从技术角度出发,分析原理和实现,解决我们自己 ...

  8. Android自定义弹窗模仿微信,Android 仿微信朋友圈点赞和评论弹出框功能

    本文简单模仿微信朋友圈的点赞和评论弹出框,布局等细节请忽略,着重实现弹出框.发评论,及弹出位置的控制. 1. 微信弹出框 微信朋友圈的点赞和评论功能,有2个组成部分: 点击左下角的"更多&q ...

  9. 仿微信朋友圈【九宫格的实现】

    仿微信朋友圈[九宫格的实现] 标签: 九宫格自定义viewgroup 2017-04-18 18:39  561人阅读  评论(0)  收藏  举报   分类: Android(25)  版权声明:本 ...

  10. android com.mylhyl,Android 高仿微信朋友圈拍照上传功能

    模仿微信朋友圈发布动态,输入文字支持文字多少高度自增,有一个最小输入框高度,输入文字有限制,不过这些都很easy! 1. photopicker的使用 这是一个支持选择多张图片,点击图片放大,图片之间 ...

最新文章

  1. php函数设置默认值,php函数如何设置默认值作为对象?
  2. 查看防火墙状态_干货 | 华为防火墙配置,这篇文章强烈推荐收藏学习
  3. maven设置本地仓库路径
  4. win7下注册s2008
  5. 案例|自建or现成工具?小型创业团队敏捷研发探索
  6. 转:Java NIO系列教程(一)Java NIO 概述
  7. python网络编程知识_python六十七课——网络编程(基础知识了解)
  8. 近来很多人通过这个博文加关注,为何?
  9. 秋来秋去,飘他方的你可有着凉
  10. python机器学习——加州房价
  11. 万洲金业:日内黄金价格下跌,关注千八支撑反弹。
  12. 小程序审核出现的虚拟支付审核失败
  13. 【山东事业单位】公共基础知识——重要国际经济组织
  14. 怎么进入BAT的研发部门?
  15. android刷机工具推荐,刷机也能如此轻松 Android一键刷机工具
  16. Linux 集群技术
  17. Delphi图书目录
  18. 银行大数据建模交流!
  19. iStylePDF接口对象必知必会系列之Page
  20. Shopify上货铺货助手,一键采集刊登上架,批量上品删除宝贝上下架更改产品属性,自动翻译,图片文字翻译

热门文章

  1. 矩型窗、哈明窗、汉宁窗、莱克曼窗等一系列函数
  2. 秒针计时器 html,JS实现一个秒表计时器
  3. ◮OpenGL-混合
  4. Ubuntu20.04 ffmpeg添加 Intel核显QSV加速支持
  5. iconfont官网中的图标保留其原本的颜色
  6. step(stp)文件导入ANSYS 2020 R2 workbench Geometry的方法
  7. 如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数。
  8. 【3dsmax】雨伞制作
  9. 抖音如何吸引精准流量?短视频引流应该怎么做
  10. Docker最全总结,DockerFile,Docker编排容器,Docker镜像,Docker-compose构建