很久没有写博客了,今天给大家分享一个刚写好的小功能,很实用。

使用场景:禁用布局里所有的子控件,让界面只能看,但不能编辑,如果一个一个控件去设置肯定是很麻烦的,于是想了个好方法。可根据需要扩展更多控件,只要注意控件是ViewGroup类型还是View类型就行了。

代码如下:

[java]

/**

* 遍历布局,并禁用所有子控件

*

* @param viewGroup

*            布局对象

*/

public static void disableSubControls(ViewGroup viewGroup) {

for (int i = 0; i < viewGroup.getChildCount(); i++) {

View v = viewGroup.getChildAt(i);

if (v instanceof ViewGroup) {

if (v instanceof Spinner) {

Spinner spinner = (Spinner) v;

spinner.setClickable(false);

spinner.setEnabled(false);

Log.i(TAG, "A Spinner is unabled");

} else if (v instanceof ListView) {

((ListView) v).setClickable(false);

((ListView) v).setEnabled(false);

Log.i(TAG, "A ListView is unabled");

} else {

disableSubControls((ViewGroup) v);

}

} else if (v instanceof EditText) {

((EditText) v).setEnabled(false);

((EditText) v).setClickable(false);

Log.i(TAG, "A EditText is unabled");

} else if (v instanceof Button) {

((Button) v).setEnabled(false);

Log.i(TAG, "A Button is unabled");

}

}

}

android怎样禁用整个布局点击,Android - 自动禁用布局里的所有子控件相关推荐

  1. Android 点击事件,如何在界面上或者某个控件上添加点击事件

    说到点击事件,第一印象 setOnClickListener() 方法,这也是用的最多的控件点击事件方法,这篇文章不分享这个方法,使用该方法的前提是你要拿到这个控件的 View 才可以调用这个方法 通 ...

  2. Android入门到精通|安卓/Android开发零基础系列Ⅱ【职坐标】-学习笔记(1)-- 常用控件及资源介绍

    前言 为了巩固Android基础知识,回顾一下学习内容,才有此学习笔记. IDE Androdi Studio 4 + Genymotion 创建项目 修改项目的 build.gradle,添加国内镜 ...

  3. android自动生成cardview,学习使用Material Design控件(三)使用CardView实现卡片效果...

    本文主要介绍CardView的使用,CardView是继承自FrameLayout,使用比较简单,只需要用CardView包含其他View就可以实现卡片效果了. 实现效果如下: 加入依赖库 depen ...

  4. Android插件化开发指南——实践之仿酷狗音乐首页(自定义ImageView控件)

    文章目录 1. 前言 2. 基础环境--实现RecyclerView的网格布局 3. 自定义ImageView 3. 后记 1. 前言 拟定实现效果部分为下图的歌单列表部分,也就是图中红线框出来的部分 ...

  5. Android 绿豆通讯录【 SQLite数据库(增删改查、展示数据) + ListView数据展示控件(展示所有数据) 】

    前情提要:Android 数据库(SQLite) [简介.创建.使用(增删改查.事务.实战演练).数据显示控件(ListView.Adapter.实战演练-绿豆通讯录)] https://blog.c ...

  6. Android 9.0 去除锁屏界面及SystemUI无sim卡拨打紧急电话控件显示功能实现

    1.1概述 在9.0的系统rom定制化开发中,关于SystemUI的定制化功能也是比较多的,在SystemUI的锁屏页面和状态栏提示无sim卡拨打紧急电话控件显示等相关提示 的功能中,在有些syste ...

  7. Android kotlin 将Base64字符串转换成Bitmap,并在jetpack compose的Image控件中显示

    Android kotlin 将Base64字符串转换成Bitmap 前言 代码 将Base64字符串转换成Bitmap 在jetpack compose的Image控件中显示Bitmap 完事 前言 ...

  8. Android 10.0去除锁屏界面及SystemUI无sim卡拨打紧急电话控件显示

    在开发定制化wifi版平板时,需要去掉所有紧急拨打电话的功能,而紧急拨打电话在锁屏界面 和SystemUI 的下拉快捷里面有这些功能 所以就从这两个地方入手,屏蔽到紧急拨打电话功能 1.SystemU ...

  9. android 商品筛选view,FilterTabView 基于 Popupwindow 实现的筛选房源信息等相关的控件,可以自由排序 @codeKK Android开源站...

    基于 Popupwindow 的下拉筛选控件 功能 区分 支持区域二级联动选择 FilterTabConfig.FILTER_TYPE_AREA 支持单行 List 样式选择 FilterTabCon ...

最新文章

  1. [译] 12步轻松搞定python装饰器 - 简书
  2. 信息系统项目管理师-项目采购管理知识点
  3. Django 基础教程
  4. 基于动态背包的多场景广告序列投放算法
  5. JavaScript数组方法速查手册
  6. WebBrowser设置打印页眉页眉和页边距
  7. 贷款利息及公积金知识点
  8. 在Orderby子句中使用CASE 语句
  9. 重庆天象网络科技:UI设计的图标概述,新手必看的设计基础
  10. 怎样准备全国大学生数模竞赛大学生篇非常全
  11. 超级计算机 弦理论,暗能量导致宇宙加速膨胀?弦理论能否帮忙解决?
  12. 以太智云赋能游戏产业,打造长沙顶尖NFT游戏开发平台,实现边玩边赚
  13. android 高德地图动画,使用MotionLayout实现高德地图bottomSheets效果
  14. securecrt下传输大文件
  15. AutoHotkey快捷键简单介绍
  16. 用U盘启动盘给Dell服务器装系统找不到RAID阵列解决办法
  17. eclipse mdt java工程_Atitit.uml2 api 的编程代码实现设计uml开发 使用eclipse jar java 版本...
  18. 网络里有两个计算机怎么删掉其中的一个,文件删不掉显示已在另一个程序中打开怎么办删除?...
  19. 为什么连续性变量才有概率密度函数,而离散型只有概率呢?
  20. 印度之行-4:斋普尔,帝王将相今何在

热门文章

  1. table 表格点击当前行按钮隐藏当前的另一个按钮_Excel表格为什么那么慢已经应该如何解决(四)一类特殊的函数易变函数(volatile function)...
  2. 安装Linux后windows在哪启动,在Linux下安装windows后解决Linux不能启动能问题
  3. java的requestmapping_SpringMVC RequestMapping 详解
  4. Linux内核的时钟中断
  5. Dynamics CRM 2016 安装
  6. 软件工程 – 开发模型
  7. Iaas,Paas,Saas三者的区别联系是什么?
  8. 软件测试计划时要记住什么
  9. 一步步编写操作系统 77 内联汇编与ATT语法简介
  10. c语言删除文件remove_Python中的文件和目录操作