private int lineCount; 这个是计算后textview的行数 private int defaultMaxLine=2; 只有这个需要我们自己定个数,就是没展开时显示的行数 private boolean fold=false; 展开收起点击事件 tvAll.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (lineCount > defaultMaxLine) { if (fold) { tvContent.setMaxLines(10086); tvAll.setText("收起"); } else { tvContent.setMaxLines(defaultMaxLine); tvAll.setText("全文"); } fold = !fold; } } }); 动态获取textview所占行数进行判断 tvContent.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { //这个回调会调用多次,获取完行数记得注销监听 tvContent.getViewTreeObserver().removeOnPreDrawListener(this); lineCount = tvContent.getLineCount(); if (lineCount > defaultMaxLine) { tvContent.setMaxLines(defaultMaxLine); fold = true; tvAll.setVisibility(View.VISIBLE); tvAll.setText("全文"); } else { tvAll.setVisibility(View.GONE); } return true; } });
TextView的收起与全文切换
最新推荐文章于 2022-04-04 10:55:16 发布