Android非常简单的TextView展开和收起,在列表中TextView文章展开全部和收起
16lz
2021-01-26
我的效果图:
第一步:布局,非常简单一个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()); //随时释放选中状态
好了结束。是不是超级简单,如果想加点动画效果可以自己加属性动画。
更多相关文章
- (4.1.1)Android(安卓)ActionBar完全解析,使用官方推荐的最佳导航栏(
- Android中System.exit(0)退出失败
- 4 行代码实现 ANDROID 快速文件下载
- Android(安卓)MediaPlayer的生命周期
- Android(安卓)-- NotificationManager and Notification学习笔记
- 安卓控件之单选按钮 (RadioButton和RadioGroup)
- 实时监听Android系统的网络连接状态
- Android:Activity(四):Activity生命周期
- android沉浸式状态栏的最简单实现