需要实现的效果是 TextView先显示2行文字,点击TextView之后 显示全部文字。思路是在布局设置lines=2,singleLine="false",ellipsize="end" ,代码中再把lines设置多行
但是TextView宽度是变宽了,但文字还是显示一行。详细布局如下:
        
       <TextView
            android:id="@+id/tv_juqing"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:singleLine="false"
            android:ellipsize="end"
android:lines="2"
android:maxLines="10"
            android:paddingBottom="3.0dip"
            android:paddingLeft="10.0dip"
            android:paddingRight="10.0dip"
            android:paddingTop="3.0dip"                 
            android:text="文字肯定是够长的" />
实现代码: public void onClick(View v){
tv_juqing.setSingleLine(false);
tv_juqing.setMaxLines(10);
tv_juqing.setEllipsize(android.text.TextUtils.TruncateAt.END);
Log.i("tag", "我响应了");
//tv_juqing.setText("测试");
if (tv_juqing.getLineCount()==3){
tv_juqing.setLines(1);
}else{
tv_juqing.setLines(3);
}
}
请问下具体是什么原因啊,还是要刷新TextView?

解决方案 »

  1.   

    你能确定onClick方法调用了么?
    tv_juqing = (TextView) findViewById(R.id.tv_juqing);

    tv_juqing.setOnClickListener(new View.OnClickListener(){ @Override
    public void onClick(View v) {
    tv_juqing.setSingleLine(false);
    tv_juqing.setMaxLines(10);
    tv_juqing.setEllipsize(android.text.TextUtils.TruncateAt.END);
    Log.i("tag", "我响应了");
    //tv_juqing.setText("测试");
    if (tv_juqing.getLineCount()==3){
    tv_juqing.setLines(1);
    }else{
    tv_juqing.setLines(3);
    }
    }

    });我这样试的是可以的
      

  2.   

    非常确定调用了,那个Log.i("tag", "我响应了"); 就是为了测试的 
    很奇怪的是 我在布局里面修改lines的话  效果就实现了,
    SDK用的4.2的版本!
      

  3.   

    问题找到了,去掉android:ellipsize="end"之后 就能实现了,
    但是这样的话 但文字没有全部显示时,末尾就没有...出现了