Android 因为设置textView Single Line 导致的奇葩问题

本文解决ViewPager中TextView设置singleLine与ellipsize后出现的GridView第一个子项不显示、ViewPager不能滑动及自定义控件无法正常绘制等问题。通过调整TextView布局参数并使用setMaxLines方法成功解决。

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

处于UI 的要求,对ViewPager 中的TextView 设置 了singleLine 

tv.setEllipsize(TextUtils.TruncateAt.END);

然后就出现了如下几个问题。

1, GridView 第一个child 不显示问题

2,View Pager 不能滑动问题。

3,Canvas drawCircle 中自定义控件中 无法绘制出来的问题。

 

解决:

问题1:对GridView 的child 复用LayoutOutParams 不要再次新建。 这个问题就解决了。这个问题不是由于textView 的改动引起的。

问题2 ,3 本以为不是同一个问题。但是跟踪下来发现,根本原因还是 textView 中的mScrollX 变得很大。从而导致:ViewPager 判断当前TextView 是可以左右滑动的,因此ViewPager 不再左右滑动。

canvasdrasw 由于这个偏移 导致绘制部分无法展示。

 

解决办法: 使用setmaxLine(1)

转载于:https://my.oschina.net/u/592116/blog/1832805

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值