Android中设置焦点的过程

  Android中设置焦点时,首先要让这个控件有获取焦点的能力,在XML文件中通过给控件添加android:focusable="true"属性来表明该控件有获得焦点的权利。然后在页面使用时,需要哪个控件获得焦点就在代码中使用requestFocus()方法来强制要求该控件获取焦点。
  以上是普通控件获取焦点的方法。但是在某些情况下比如像GridVIew等控件我们不需要让这一个整体获取焦点,而是让这个控件里面的item获取焦点。这种情况下,我们需要对GridView设置不能获取焦点android:focusable="false",同时要将子控件需要获取到焦点的控件设置focusable为true,表明子控件有获取到焦点的能力。但是同时还要设置将当GridView需要requestFocus()时让item获取到焦点,此时就需要给GridView设置 android:descendantFocusability="afterDescendants"属性,表明当该GridView获取焦点时首先将焦点交给子控件去显示。android:descendantFocusability有三种取值,分别是:

取值含义
afterDescendantsviewgroup只有当其子类控件不需要获取焦点时才获取焦点
beforeDescendantsviewgroup会优先其子类控件而获取到焦点
blocksDescendantsviewgroup会覆盖子类控件而直接获得焦点

  在上面的这种情况下,我们使用的是第一种。但是有很多情况下,我们要求的是对item这一个整体获得焦点,因此我们需要在item的整体布局中添加上blocksDescendants属性,不让item的具体元素获得焦点。

Android ,Fragment 是一种可以嵌入到 Activity 的可重用组件。当 Activity 运行时,Fragment 可以独立地添加、移除、替换和交互。下面是 Fragment 的执行过程: 1. 创建 Fragment 对象:通过调用 Fragment 的构造函数来创建一个新的 Fragment 对象。 2. 添加 Fragment 到 Activity:使用 FragmentManager 将 Fragment 添加到对应的 Activity。 3. 为 Fragment 创建视图:在 Fragment 的生命周期方法 onCreateView() 创建和返回视图层次结构。 4. 绑定 Fragment 到 Activity:在 Fragment 的生命周期方法 onAttach() 将 Fragment 绑定到它的父 Activity。 5. 创建 Fragment:在 Fragment 的生命周期方法 onCreate() 进行初始化工作,例如恢复保存的状态、初始化变量等。 6. 创建 Activity 视图:在 Activity 的生命周期方法 onCreateView() 创建 Activity 的视图层次结构。 7. 把 Fragment 加入到 Activity 视图:将 Fragment 在 Activity 视图占据的位置预留给它,可以使用 <fragment> 标签或者动态添加。 8. 可见性改变:在 Fragment 的生命周期方法 onStart() ,Fragment 变为可见状态,可以与用户交互。 9. 焦点获取:在 Fragment 的生命周期方法 onResume() ,Fragment 获取焦点,可以响应用户输入。 10. 用户交互:Fragment 可以通过用户输入(点击按钮、触摸屏幕等)响应用户交互,处理用户交互事件。 11. 生命周期变化:当 Activity 的生命周期发生变化时,Fragment 的生命周期也会随之变化。 12. 可见性改变:在 Fragment 的生命周期方法 onPause() ,Fragment 失去焦点,不再与用户交互。 13. 保存状态:在 Fragment 的生命周期方法 onSaveInstanceState() ,保存 Fragment 的状态。 14. 不可见性改变:在 Fragment 的生命周期方法 onStop() ,Fragment 变为不可见状态。 15. 解绑 Fragment:在 Fragment 的生命周期方法 onDetach() ,将 Fragment 与它的父 Activity 解绑。 16. 销毁 Fragment:在 Fragment 的生命周期方法 onDestroy() ,释放资源,销毁 Fragment 对象。 这是一个典型的 Fragment 生命周期流程,每个生命周期方法都提供了对应的回调函数,我们可以在这些方法执行相应的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值