android:state_activated可以解决焦点问题

今天做项目的时候,使用fragment+viewpaper组合。

由于某个fragment中有edittext需要获取焦点,而fragment状态使用button来表示的。

怎么表述才清楚呢,算了,上个图:



问题是,当焦点放到edittext上面时候,btn就失去焦点了,也就是没有下面那个小蓝线。

起先,在onPageSelected中进行处理,直接设置background为后面的蓝线图片,但状态栏各个btn出现了上下不一的奇怪问题:



解决方法:


在selector里面加上

 <item android:drawable="@drawable/tab_selected" android:state_activated="true"/>;


在onPageSelected的时候不是直接setbackground,而是使用setActivated方法。


区别于focused和pressed,activated更倾向于持久化的展示:


android:state_activated

    一个布尔值,如果设置为ture,那么这个项目应该在对象被持久选择时使用(如对象的高亮状态),否则应该在对象没有被激活时使用这个状态。


所以,如果遇到需要展示2个或者2个以上获取焦点的View的界面,不妨使用此方法。


是以记录。


  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值