在开发过程中,你可能会遇到这样的问题:在一个很长的界面刚初始化结束的时候默认不是最顶部而是某一个控件,比如ListView;也可能遇到Edittext自己弹出软键盘的问题等等。其实这些都是焦点获取的问题,不想有这样的小bug那么就要对焦点的获取问题进行合理的控制。大多数人会在初始化的时候就对某个控件添加这个属性:
×××.setFocusable(false);
其实在建立xml布局文件的时候Android就提供了焦点控制的属性:
android:descendantFocusability="blocksDescendants"
解释一下相应的属性和对应的表达。
该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/17615.html
微信打赏
支付宝打赏
感谢您对作者Joy的打赏,我们会更加努力! 如果您想成为作者,请点我