`
熊滔爱孟涛静
  • 浏览: 124727 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android 控件焦点控制

阅读更多

     系统框架将处理日常的焦点移动来响应用户的输入,它包刮改变焦点(当界面是被移除,隐藏,或者作为一个新的View变为可用状态),通过isFocusable()这个方法我们可以知道view是否具有接受焦点的资格,也可以通过setFocusable().来设置view接受焦点的资格,对应在触摸模式下,你可以调用isFocusableInTouchMode().来获知是否有焦点来响应点触,也可以通过setFocusableInTouchMode().来设置是否有焦点来响应点触的资格.
系统框架控制焦点移动到另一个组件的算法是在某一方向上邻近的组件,在极个别情况下,默认的算法可能不符合开发者的预想要求,在这种情况下,你可以覆写下列XML属性的布局文件:nextFocusDownnextFocusLeftnextFocusRight ,和nextFocusUp 设置他们的值来明确焦点从当前界面移动下个界面的Id。例如: 

<LinearLayout

android:orientation="vertical"

... >

<Button android:id="@+id/top"

android:nextFocusUp="@+id/bottom"

... />

<Button android:id="@+id/bottom"

android:nextFocusDown="@+id/top"

... />

</LinearLayout>


      一般来说,在这个垂直布局,浏览的焦点会从第一个按钮开始,不会是从第二个或者其他的,现在topButtont已经通过nextFocusUp (反之亦然)确定了bottom.
      通常如果你想宣布用户界面具有焦点的资格 (如果这个界面在传统上是没有的),可以在xml布局里去加上的android:focusable的属性,并设置它的值,您也可以宣布在触摸模式下具有焦点的资格,同样也只在xml里添android:focusableInTouchMode.的属性,并设置它的值. 当用户请求在某个界面聚集焦点时,会调用requestFocus().这个方法。监听到焦点活动(获得焦点或失去焦点都会被通知),会调用onFocusChange(),这个方法。虽然帖子比较短,但是我感觉这个例子还是非常有用的,希望对开发者有一些帮助。想继续交流的可以回帖。

分享到:
评论

相关推荐

    android控件放大被遮盖已解决

    总的来说,解决Android控件放大后被遮盖的问题,主要涉及调整视图层次、设置焦点顺序以及利用阴影效果。理解这些机制,可以帮助你创建更加灵活和用户友好的界面。在实际开发中,根据具体需求和兼容性要求,灵活运用...

    Android焦点控制原理及源码

    在Android系统中,焦点控制是用户与界面交互的关键部分,特别是在涉及键盘输入或者触摸操作时。焦点决定了哪个组件能够接收用户的输入事件。Android系统有一套默认的焦点管理机制,但有时候需要根据应用的具体需求...

    Android中RecyclerView在TV中处理控件焦点移动,EditText值的修改,CheckBox复用等问题解决

    Android中RecyclerView在TV中处理控件焦点移动,EditText值的修改,CheckBox复用等问题解决,详细了解请移步:http://blog.csdn.net/zxc514257857/article/details/74990099

    listview的子控件焦点问题

    尤其是在处理ListView的子控件焦点时,可能会遇到一些棘手的问题,如子控件无法获取焦点,这直接影响了用户体验和应用功能的正常实现。 ### ListView与焦点管理 ListView组件默认情况下是具有焦点的,这意味着它...

    android TV Recyclerview焦点控制及自动换行

    最近开始接触Android TV端开发,有好多不适应,尤其是对焦点的控制,这也是手机app和电视app最大的不同之处。RecyclerView是个强大的控件...这里我要实现的是RecyclerView的item的焦点控制和RecyclerView末尾自动换行。

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

    标题提到的“Android没有输入焦点类控件的输入法调用”指的是在Android开发中,如何在那些不遵循常规焦点机制的控件上触发输入法显示。下面我们将详细探讨这个问题。 首先,了解Android的焦点机制。在Android中,...

    Android 控件拖动

    首先,我们需要理解Android控件的基础知识。Android中的控件(View)是用户界面的基本元素,如Button、TextView、ImageView等,它们可以被添加到布局(Layout)中,以展示各种信息或接收用户输入。在Android中,我们...

    Android基本控件事件总结

    在Android开发中,基本控件是构建用户界面的基础,它们提供了与用户交互的各种方式。本文将对Android的一些常见控件及其对应的事件进行总结,帮助开发者更好地理解和应用这些控件。 首先,Button(按钮)是最常见的...

    android跑马灯效果,失去焦点也可以实现

    标题提到的"android跑马灯效果,失去焦点也可以实现"意味着即使控件没有获取到焦点,仍然可以保持滚动效果。这在设计用户界面时特别有用,因为有时候我们希望信息能够持续吸引用户的注意力,而不仅仅是当用户交互时...

    Android金额输入控件

    首先,我们需要了解基本的Android控件体系。在Android中,我们通常使用`EditText`作为用户输入的基础组件。为了限制用户输入,我们可以重写`EditText`的`addTextChangedListener`方法,添加一个监听器来捕获用户输入...

    安卓TimePicker与其他控件焦点切换Demo

    这个Demo的主题是"安卓TimePicker与其他控件焦点切换",主要关注如何在TimePicker与应用中的其他UI元素之间平滑地切换焦点,通常这涉及到键盘事件的处理以及自定义焦点转移逻辑。下面将详细解释这一知识点。 1. **...

    一个Demo让你掌握所有的android控件源码

    "一个Demo让你掌握所有的android控件源码"这个项目提供了一个完整的源码集合,旨在帮助初学者和进阶开发者更好地理解Android SDK中的各种控件工作原理。通过在Eclipse环境中编译和运行这个Demo,你可以亲身体验...

    android自定义IP控件

    在Android开发中,自定义控件是提升用户体验和界面独特性的重要手段。"android自定义IP控件"是一个专门设计用于模拟标准IP地址输入的组件。这个控件旨在让用户能够像在传统网络设置中那样,方便地输入IPv4格式的地址...

    android中模拟焦点移动

    在Android开发中,焦点移动是用户界面交互的重要组成部分,它涉及到控件间的切换,比如在按钮、文本框、列表视图等之间的导航。当用户使用物理键盘或触摸屏幕时,焦点会从一个可聚焦的视图移动到另一个,通常伴随着...

    Android各控件及界面布局介绍

    ### Android各控件及界面布局介绍 #### 一、基本界面组件 在Android开发中,基本界面组件是构建用户界面的基础。这些组件包括但不限于文本框、编辑框、按钮等。 ##### 文本框(TextView) **功能简介:** - **...

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

    总之,Android系统默认是根据控件的焦点来决定是否显示输入法。但通过使用`InputMethodManager`服务,开发者可以自定义何时以及如何调用输入法,以适应不同的应用需求。在处理非焦点控件的输入法调用时,需要特别...

    android焦点滑动

    在Android开发中,"android焦点滑动"通常指的是在用户操作界面时,控件之间的焦点转移和滑动浏览效果。这种效果是通过Android系统提供的触摸事件处理和布局管理来实现的,尤其在列表视图(ListView)、滚动视图...

    Android 自定义Button按钮显示样式(正常、按下、获取焦点)

    在Android开发中,自定义控件是提升应用界面独特性和用户体验的重要手段。本文将深入探讨如何自定义一个Button,使其在不同状态(正常、按下、获取焦点)下呈现出不同的显示样式。我们将通过创建一个自定义的Button...

    VerticalGridView第一行获取焦点后,再次按向上键,上方的控件获取不到焦点解决方案

    这个问题通常涉及到焦点的流转逻辑,Android系统的焦点机制以及自定义控件的处理。 Android系统中的焦点管理是基于ViewGroup和View的焦点传递规则进行的。默认情况下,当用户按下向上键,焦点会按照相反的顺序在...

    Android控件IP地址输入

    上面的输入框写成了一个自定义组合控件,方便使用,说起来功能也挺简单的,主要是组合了四个EditText,然后判断EditText输入内容,还有就是对焦点的获取也是比较重要的详见本人博客http://blog.csdn.net/elinavampire

Global site tag (gtag.js) - Google Analytics