广告
返回顶部
首页 > 资讯 > 移动开发 >android:descendantFocusability方法介绍
  • 668
分享到

android:descendantFocusability方法介绍

Android 2022-06-06 11:06:50 668人浏览 泡泡鱼
摘要

此方法适用于所有母控件无法获取焦点的情况 开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承Bas

此方法适用于所有母控件无法获取焦点的情况
开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点。原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。
这时候就可以使用descendantFocusability来解决啦,api描述如下:
Android:descendantFocusability
Defines the relationship between the ViewGroup and its descendants when looking for a View to take focus.
Must be one of the following constant values.


该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
通常我们用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了,至此listview点击的灵异事件告一段落。心得:遇到不会不懂的地方除了网上查询资料之外,也可以多多去尝试每种属性的作用,多阅读官方文档(我始终觉得还是读原文的比翻译的理解的会更好)。 您可能感兴趣的文章:Material Design系列之Behavior实现Android知乎首页PHP、java、android、iOS通用的3Des方法(推荐)Android5.0中Material Design的新特性Android数据加密之Des加密详解Android程序开发之使用Design包实现QQ动画侧滑效果和滑动菜单导航Android App仿QQ制作Material Design风格沉浸式状态栏详解Android Material Design自定义动画的编写学习Android Material Design(RecyclerView代替ListView)Android编程之Activity中onDestroy()调用分析Android数据加密之Des加密


--结束END--

本文标题: android:descendantFocusability方法介绍

本文链接: https://www.lsjlt.com/news/28165.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • android:descendantFocusability方法介绍
    此方法适用于所有母控件无法获取焦点的情况 开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承Bas...
    99+
    2022-06-06
    Android
  • JavaScriptreduce方法使用方法介绍
    目录1. reduce方法的使用2. reduce数组的使用场景2.1 扁平化数组2.2 数组去重2.3 计算数组最大/最小值2.4 数组求和2.5 计算数组中元素的出现次数3. 操...
    99+
    2022-11-13
    JavaScript reduce JS reduce
  • jQuery trigger()方法用法介绍
    jQuery的trigger()方法用于触发指定元素上的特定事件。它模拟了用户对元素的交互操作,例如点击、鼠标悬停等,从而触发相应的事件处理程序。使用trigger()方法可以实现以下几个功能:1. 触发指定元素上的特定事件。例如,可以...
    99+
    2023-08-11
    jQuery
  • Java 方法(详细介绍)
    那么什么是方法呢?Java方法是语句的集合,它们在一起执行一个功能。 (推荐学习:java课程)方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用方法的优点 使程序变得更...
    99+
    2017-06-19
    java教程 Java
  • vue中install方法介绍
    目录1、全局注册组件2、全局自定义指令vue提供install可供我们开发新的插件及全局注册组件等 install方法第一个参数是vue的构造器,第二个参数是可选的选项对象 ex...
    99+
    2022-11-12
  • hibernate 常用方法介绍
    一、hibetnateTemplate常用方法1、delete(Object entity) 删除指定的持久化实例在程序中一般先用    Assert....
    99+
    2022-11-15
    hibernate
  • equals()方法和hashCode()方法(详细介绍)
    Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码。equals()和hashCode()都不是final方法,都可以被重写(overwrite)。本文介...
    99+
    2014-05-14
    java教程 Java
  • javaArrayList中的remove方法介绍
    先看一段代码,看看自定义的ArrayList中的remove设计是否有问题。 public class MyArrayList { private Object[] mDat...
    99+
    2022-11-12
  • mysql的查询方法介绍
    本篇内容主要讲解“mysql的查询方法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql的查询方法介绍”吧!  本文主要介绍的是MySQL慢查询分析方...
    99+
    2022-10-18
  • Android onCreate( )方法详细介绍
    onCreate( )方法是android应用程序中最常见的方法之一,那么,我们在使用onCreate()方法的时候应该注意哪些问题呢?     ...
    99+
    2022-06-06
    方法 Android
  • Kotlin ContentProvider使用方法介绍
    目录1、注册ContentProvider2、内容URI内容URI的标准格式通配符3、创建自己的ContentProvider4、访问其他程序中的数据1、注册ContentProvi...
    99+
    2022-11-13
  • 介绍linux golang安装方法
    Linux Golang 安装教程Golang 是一种高效、简洁、并发和可靠的编程语言,开源、跨平台,并且特别适合构建网络应用和云服务。在 Linux 系统中安装 Golang 是一个容易的过程,下面我们将给您简单介绍如何进行安装。下载并解...
    99+
    2023-05-14
    Golang
  • AndroidLeakCanary的使用方法介绍
    目录1.LeakCanary 如何自动初始化2.LeakCanary如何检测内存泄漏2.1LeakCanary初始化时做了什么2.2LeakCanary如何触发检测2.3LeakCa...
    99+
    2022-11-13
  • python的特殊方法介绍
    __repr__、__str____len__、__getitem__、__setitem__、__delitem__、__contains____iter__、__reversed__、__next____call____enter__、...
    99+
    2023-01-30
    方法 python
  • Android 中LayoutInflater.inflate()方法的介绍
    Android 中LayoutInflater.inflate()方法的介绍最近一直想弄明白LayoutInflater对象的inflate方法的用法,今天做了实例。<LinearLayout android:id="@+id...
    99+
    2023-05-30
    android layoutinflater flat
  • C#迭代器方法介绍
    目录1.迭代器方法2.手动实现迭代器方法1.迭代器方法 可以使用foreach循环语句进行的迭代的方法,称为可迭代方法,或者迭代器方法。 迭代器用法法介绍。   迭代器用于依次返回每...
    99+
    2022-11-13
  • String.format()方法的使用介绍
    String.format() 方法中的 % 符号用作占位符,用于将值插入字符串中。它用于使用特定值(例如整数、浮点数或字符串)格式化字符串。% 符号后面跟着一个字母,指定要插入的值的类型,例如 %d 表示整数,%s 表示字符串。要插入的...
    99+
    2023-09-07
    java 开发语言 spring servlet
  • mysqldump的使用方法介绍
    这篇文章主要介绍了mysqldump的使用方法介绍,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。1、说明mysqldump在库被删除的情况下,无法直接从文件恢复,需要手动新建同名库,才能从文件恢复数据。2、语法shell...
    99+
    2023-06-15
  • 卸载linux的方法介绍
    这篇文章主要讲解了“卸载linux的方法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“卸载linux的方法介绍”吧!很多新童鞋都不知道怎么卸载linux,往往搞损坏grub,导致不能正常...
    99+
    2023-06-12
  • windows7进到bios方法介绍
    windows7进到bios方法是什么呢,由于大部分用户一般不会主动进到bios界面,因此用户不清楚如何进入bios,bios界面是启动电脑的时候相当于系统发的后台,能够控制一些硬件的启动等作用,因而用户要想进到bios的话必须一个进到的方...
    99+
    2023-07-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作