我的效果图:

第一步:布局,非常简单一个TextView和一个checkBox复选框:

                                           

第二步:在Adapter适配器中写个逻辑。headTv(文字的TextView)/ch是展开和收起按钮
//展开文字

    final CheckBox ch = baseViewHolder.getView(R.id.check_zhankai);    headTv.post(new Runnable() { //用post方法是因为当view绘制完获取信息,不然可能第一次获取不到正确的行数。        @Override        public void run() {            dataBean.setMaxLines(headTv.getLineCount()); //保存一个最大行数,在集合对应的对象中            if (headTv.getLineCount() > 5) {   //如果大于5行                ch.setVisibility(View.VISIBLE);  //展开按钮显示            } else {                ch.setVisibility(View.GONE);   //否则,展开按钮隐藏            }        }    });    //当点击按钮发生改变    ch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {        @Override        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {            dataBean.setCheckZK(isChecked); //这里在你的对象集合中记录一个状态值,防止滑动checkBox选中状态错乱            if (isChecked) {                ch.setText("收起");                headTv.setMaxLines(dataBean.getMaxLines());                headTv.postInvalidate();            } else {                headTv.setMaxLines(5);                headTv.postInvalidate(); //刷新控件,不加的话,如果下拉刷新列表notifyDataSetChanged()的时候TextView会自动重绘                ch.setText("全文");            }        }    });    ch.setChecked(dataBean.isCheckZK()); //随时释放选中状态

好了结束。是不是超级简单,如果想加点动画效果可以自己加属性动画。

更多相关文章

  1. (4.1.1)Android(安卓)ActionBar完全解析,使用官方推荐的最佳导航栏(
  2. Android中System.exit(0)退出失败
  3. 4 行代码实现 ANDROID 快速文件下载
  4. Android(安卓)MediaPlayer的生命周期
  5. Android(安卓)-- NotificationManager and Notification学习笔记
  6. 安卓控件之单选按钮 (RadioButton和RadioGroup)
  7. 实时监听Android系统的网络连接状态
  8. Android:Activity(四):Activity生命周期
  9. android沉浸式状态栏的最简单实现

随机推荐

  1. 阿里Android开发规范:UI 与布局
  2. 换个角度理解Android的AIDL原理
  3. 毕加索的艺术——Picasso,一个强大的Andr
  4. Android护眼模式、屏幕亮度调节功能开发
  5. Android 4.0按键事件以及电源管理流程分
  6. 深入分析android中用SAX解析XML文件并纠
  7. Android的WebView控件载入网页显示速度慢
  8. Android实现系统级屏幕录制(上)
  9. Android的IPC机制(五)—— ContentProvider
  10. Android最佳性能实践(三)——高性能编码