android:focusableInTouchMode有什么作用

android:focusableInTouchMode属性是一个在Android布局文件中可以使用的XML属性,用于指定视图在触摸模式下是否可以获取焦点。如果设置为true,表示视图可以在触摸模式下获取焦点,否则则不可以。默认情况下,android:focusableInTouchMode属性值为false,这意味着只有在焦点模式下,视图才能获取焦点。

当android:focusableInTouchMode属性设置为true时,它会将视图的获取焦点的属性从焦点模式切换到触摸模式。这意味着,当用户触摸视图时,该视图可以响应用户的输入操作,并且可以改变视图或其子视图的状态或行为。

需要注意的是,当android:focusableInTouchMode属性设置为true时,视图可能会通过触摸或键盘输入同时获取焦点,因此需要根据实际情况做出相应的处理。

普通模式focusable,请求普通获取焦点的能力(可以理解为通过物理键盘),在xml中的配置是android:focusable="true"。

和focusable的区别

出现这种模式主要是因为Android系统不仅仅是针对手机的,有可能在电视、手表等非触摸输入设备上。手机上普通模式很少用了,现在的手机基本都是触摸屏并且没有物理上下键的,这种模式是用在TV等一些有物理键的产品。如果设置为true,则键盘上下左右选中,焦点会随之移动。如有物理上下键,你按一个向下键,屏幕上的内容就会对应选中一个向下的控件,如果这个控件有focusable能力的话这个时候这个控件就是获得了焦点。