`

View的requestFocus()和requestFocusFromTouch()方法的区别

阅读更多
if(userNameEditText.isInTouchMode()){
userNameEditText.requestFocusFromTouch();
}else{
userNameEditText.requestFocus();
}
不理解这两个方法的意思,去看了下API。了解了:




首先,这两个方法都是获得焦点的方法。

其次,requestFocus()在两种情况下不能获得焦点:

1.对应的View不支持Focus
2.对应的View支持Focus,但是不支持在Touch模式下的Focus。

而requestFocusFromTouch()就是解决requestFocus()的第二种不能获得焦点的情况,也就是说即使在Touch模式下不支持焦点,也能够获得焦点。
分享到:
评论

相关推荐

    Android在view.requestFocus(0)返回false的解决办法

    在Android开发中,`requestFocus()` 是一个常用的方法,它允许我们手动设定某个视图(View)获取焦点。然而,在实际应用中,我们可能会遇到 `view.requestFocus(0)` 返回 `false` 的情况,这意味着请求焦点的操作...

    Android requestFocus详解及实例

    下面我们将详细介绍 Android requestFocus 的使用方法和实例。 requestFocus 的使用方法 requestFocus 是一个 XML 属性,用于指定某个 View 获取焦点。它可以用在任何布局文件中,例如 LinearLayout、FrameLayout ...

    Android开发中requestfocus()无效的原因及解决办法

    然而,有时调用`requestFocus()`方法却无法达到预期效果,这通常是由于界面渲染和事件处理的顺序引起的。本文将深入探讨`requestFocus()`无效的原因,并提供有效的解决方案。 ### 原因分析 当Android应用加载一个...

    android之view学习示例

    - `onLayout()`方法在ViewGroup中用于定位子View,根据子View的LayoutParams和自身布局规则。 7. **焦点与选择** - View有焦点和选择两种状态。焦点表示当前可接收输入事件,选择则表示当前被选中。 - `...

    view类详解

    在 XML 布局文件中,你可以通过设置 View 的属性来控制它的外观和行为,如 `android:layout_width` 和 `android:layout_height` 定义大小,`android:background` 设置背景,`android:text` 控制文本内容等。...

    View事件分发

    在Android开发中,View事件分发是用户交互的核心机制,它涉及到触摸事件的捕获、处理和传递。事件分发主要包括三个步骤:dispatchTouchEvent、onTouchEvent和onInterceptTouchEvent。理解这一过程对于优化用户界面和...

    view冲突演示

    可以使用`setFocusable()`、`setFocusableInTouchMode()`和`requestFocus()`等方法来控制`View`的焦点行为。 解决`View`冲突的策略包括: 1. **调试布局**:使用Android Studio的布局检查器(Layout Inspector)...

    RecyclerView中item焦点问题

    这通常涉及到调用`requestFocusFromTouch()`方法来让当前被触摸的item获取焦点。 4. 设置选择模式 RecyclerView有多种选择模式,如SINGLE_CHOICE、MULTIPLE_CHOICE和NO_CHOICE。在处理焦点问题时,可能需要根据...

    Android没有输入焦点类控件的输入法

    在Android中,焦点管理是通过ViewGroup和View之间的交互实现的。通常,一个可点击或可触摸的View可以获得焦点,而拥有焦点的View可以接收键盘输入。EditText等标准文本输入控件会自动显示输入法,因为它们具有焦点并...

    android 焦点事件

    在Android系统中,焦点事件是用户交互的重要组成部分,它涉及到View和ViewGroup之间的焦点转移,以及与之相关的触摸事件处理。本文将深入探讨Android中的焦点事件及其源码,旨在帮助开发者更好地理解和应用这一核心...

    android事件传递测试

    在ProjectTest项目中,开发者可能会创建各种场景来模拟和测试上述的事件传递行为,例如设置不同的点击和触摸监听器,观察事件的分发和处理过程,解决子View之间的事件冲突,以及测试多点触控功能等。通过这样的测试...

    Android事件分发机制(三)事件分发和消费

    可以通过`requestFocus()`方法主动请求焦点。 - 当多个可聚焦的View在同一层级时,根据`ViewGroup`的`onRequestFocusInDescendants()`和`View`的`isFocusable()`、`isFocusableInTouchMode()`来决定焦点的归属。 6...

    android 事件传递机制dome

    Android系统使用View和ViewGroup来构建用户界面,它们共同构成了事件传递链。当一个事件发生时,系统会按照特定的顺序分发事件。 1. **事件分发流程**:事件首先被发送到最上层的View,即Activity或Window,然后...

    Android2.2 API中文文档——View

    如果有`requestFocus()`方法被调用,则优先处理具有焦点的视图。在表单中,如果想要设置某个视图(如`EditText`)获取焦点,不仅需要设置`focusable`为`true`,还需要确保前面的所有视图都将`focusable`设置为`false...

    javacanvas

    对于鼠标事件,我们实现了mouseClicked、mousePressed、mouseReleased、mouseEntered和mouseExited方法,同样更新TextField的文本以反映不同的鼠标状态。当鼠标点击Canvas时,我们调用requestFocus()方法,确保后续...

    OriSim3D-Android-用opengl 实现了各种折纸效果.zip

    view3d.requestFocus(); view3d.setFocusableInTouchMode(true);3.加载折叠模式,并开始动画commands = new Commands(this); commands.command("read cocotte.txt");//可选的模式还有:"duck.txt", "boat.txt...

    android中模拟焦点移动

    - 使用`requestFocus()`方法可以让某个View主动获取焦点。 - `onFocusChange()`回调用于监听焦点变化,可在子类中重写此方法。 2. **焦点动画**: - 视觉上的焦点反馈通常通过定义自定义的样式来实现,例如使用`...

Global site tag (gtag.js) - Google Analytics