可伸缩的textview详解(推荐)-创新互联

在Android原生的TextView的基础上,可收缩/扩展的TextView:PhilExpandableTextView。

成都创新互联公司是由多位在大型网络公司、广告设计公司的优秀设计人员和策划人员组成的一个具有丰富经验的团队,其中包括网站策划、网页美工、网站程序员、网页设计师、平面广告设计师、网络营销人员及形象策划。承接:网站制作、网站设计、网站改版、网页设计制作、网站建设与维护、网络推广、数据库开发,以高性价比制作企业网站、行业门户平台等全方位的服务。

实现原理:核心是控制TextView的max lines。在TextView的初始化阶段但尚未绘制出View的时候,使用ViewTreeObserver,监听onPreDraw事件,获取TextView正常显示需要显示的总行数,但只给TextView设置大运行的行数(小于总行数),从而造成TextView的收缩摘要效果,当用户通过按钮或其他方式扩展时候,把TextView的大行数设置为正常显示完全的行数+1(+1是保持余量,避免不足)。

public class MainActivity extends Activity { 
  private String str = ""; 
 
  @Override
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
 
    for (int i = 0; i < 200; i++) { 
      str = str + i + " "; 
    } 
    final ExpandableTextView etv = (ExpandableTextView) findViewById(R.id.etv); 
    etv.setText(str); 
 
    Button btn = (Button) findViewById(R.id.btn); 
 
    btn.setOnClickListener(new OnClickListener() { 
 
      @Override
      public void onClick(View v) { 
        boolean b = etv.getExpandablestatus(); 
 
        b = !b; 
        etv.setExpandable(b); 
 
      } 
    }); 
 
  } 
 
}

文章名称:可伸缩的textview详解(推荐)-创新互联
文章路径:http://ybzwz.com/article/gocgh.html