Android TextView getLineCount() 为0问题

在实现Android项目中,当需要根据TextView内容行数超过5行时添加展开功能,发现getLineCount()始终返回0。经过分析,可能是值未正确设置到TextView。解决方案是通过post()方法确保在UI线程更新后获取行数,从而正确判断并添加展开按钮。参考博客链接提供了更多详情。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    项目需求:文本内容超过5行就添加“展开--收起”功能。

    我的思路:给TextView置值之后判断TextView的行数(getLineCount()),行数超过5行就设置行数为5添加展开按钮。

    遇到问题:获取到的行数永远都为0.

    猜想可能原因:获取行数时TextView值还未放进去。

    解决方法:guidaneContent.post(new Runnable() {
                     @Override
                     public void run() {
                            int lines=guidaneContent.getLineCount();
                            if(lines>5){
                            expand.setVisibility(View.VISIBLE);
                            guidaneContent.setMaxLines(5);
                            }else{
                                  expand.setVisibility(View.GONE);
                            }                        
                     }
                    });

没时间解释内部运行机制,推荐比较好的博客:http://blog.youkuaiyun.com/zhzzhz123456/article/details/52925753

http://blog.sina.com.cn/s/blog_724cc9a60102v0ng.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值