可聚焦和可聚焦InTouchMode之间的区别?

Posted

技术标签:

【中文标题】可聚焦和可聚焦InTouchMode之间的区别?【英文标题】:Difference between focusable and focusableInTouchMode? 【发布时间】:2014-08-01 02:23:03 【问题描述】:

我想知道它们之间的实际区别......什么时候应该使用,应该如何使用,在哪些情况下有帮助?

举几个例子,详细解释一下。

【问题讨论】:

***.com/questions/8655892/… android-developers.blogspot.fi/2008/12/touch-mode.html Romain 说应该避免使用 focusableInTouchMode,除非你正在开发游戏 如果 focusable = false - 如果你按下键盘上的 Next 按钮,你不能聚焦这个视图,甚至 EditText。 【参考方案1】:

在Android开发者博客中有解释:http://android-developers.blogspot.co.at/2008/12/touch-mode.html

下面的引号应该清楚:

就其本身而言,触摸模式非常容易理解,因为它只是指示最后一次用户交互是否是通过触摸屏进行的。例如,如果您使用的是 G1 手机,选择带有轨迹球的小部件将使您脱离触控模式;

...

在触摸模式下,没有焦点,也没有选择。任何选定的项目 一旦用户输入,在网格中的列表中就会被取消选中 触摸模式。同样,任何有焦点的小部件在 用户进入触摸模式。

...

既然您知道在触控模式下不存在焦点,我必须解释一下,这并不完全正确。焦点可以存在于触摸模式中,但以一种非常特殊的方式,我们称之为触摸模式中的可聚焦。这种特殊模式是为接收文本输入的小部件创建的,如 EditText 或启用过滤时的 ListView。

...

在触摸模式下可聚焦是您可以自行设置的属性 来自代码或 XML。但是,它应该谨慎使用,并且只在 非常特殊的情况,因为它破坏了与 Android 正常的一致性 行为。游戏是应用程序的一个很好的例子 很好地利用了触控模式下的可聚焦属性。 MapView,如果用于 全屏,就像在谷歌地图中一样,是另一个很好的例子,你可以在哪里 在触摸模式下正确使用可聚焦。

【讨论】:

正确的 SO 风格的好答案。谢谢【参考方案2】:

举个例子,详细解释一下

我会给你我自己的经验:

我有一个 Google TV 应用程序,它有一个包含大量 ImageButton 的活动。

我希望 ImageButtons 是可选择的。

因此,如果有人用鼠标或遥控器点击它们,它们只会被选中(在我的例子中突出显示)。然后,如果用户按下选定的ImageButton,动作就会触发。 这个确切的行为是通过 XML 布局启用 focusableInTouchMode 属性来实现的。

我所要做的就是为 ImageButtons 设置一个普通的onClickListener,瞧!

我还没有在手机上检查过我的应用程序,但我想它会提供熟悉的结果。

编辑

什么时候?

我告诉过你一个我测试过的用例:当你希望你的 Button 的 onClickListener 在你第一次点击并选择 Button 之后在你第二次点击时触发动作。

我使用第一次点击获得“焦点”并在我的按钮上显示放大动画。

怎么做?

只需在您的 XML 布局文件中将按钮的属性 focusableInTouchMode 设置为 true

【讨论】:

何时使用它们。他们有什么帮助【参考方案3】:

Focused 是一种视图状态,通常可以使用轨迹球和 dpad 更改焦点。聚焦状态时,您的视图可以有不同的背景。

Focusable in touch mode 允许视图在用户触摸视图时获得焦点,这种组件的一个很好的例子是EditText

Button 或任何可点击组件的按下状态通常是您感兴趣的。

【讨论】:

"使用 Button 或任何可点击的组件,您应该专注于按下状态。"什么?其余答案 +1【参考方案4】:

用户可以通过使用硬件按键或按钮,或者通过触摸屏幕与他们的设备进行交互。触摸屏幕使设备进入触摸模式。然后,用户可以通过触摸屏幕上的虚拟按钮、图像等与它进行交互。

要检查设备是否处于触摸模式,请调用 View 类的 isInTouchMode() 方法。

【讨论】:

以上是关于可聚焦和可聚焦InTouchMode之间的区别?的主要内容,如果未能解决你的问题,请参考以下文章

带有列表子项可聚焦android的列表视图上下文菜单

刷新后剑道网格单元重新聚焦

android选项卡选择,按下,聚焦之间的区别?

tvOS 上 UITabBarItem 的选定和聚焦状态

聚焦索引和非聚焦索引的区别

包含和可包含之间的区别?