View setEnabled(false) 影响力

Android setEnabled 方法深度解析:交互控制的艺术与实践 setEnabled是 Android 开发中用于控制控件是否可以被用户交互的方法。请注意,setEnabled方法只影响控件的可用性,而不会影响其可见性。如果你希望隐藏一个控件,你应该使用方法。同时,你也可以结合使用setEnabled和方法,以更灵活地控制控件的行为和外观。 阅读详情
@RemotableViewMethod
	public void setEnabled(boolean enabled) {
		if (enabled == isEnabled()) return;

		setFlags(enabled ? ENABLED : DISABLED, ENABLED_MASK);

		/*
		 * The View most likely has to change its appearance, so refresh
		 * the drawable state.
		 */
		refreshDrawableState();

		// Invalidate too, since the default behavior for views is to be
		// be drawn at 50% alpha rather than to change the drawable.
		invalidate(true);

		if (!enabled) {
			cancelPendingInputEvents();
		}
	}

可以看到setEnable(false) 将View的flag打上了DISABLED.

public boolean onKeyDown(int keyCode, KeyEvent event) {
..............................................................

		if (KeyEvent.isConfirmKey(keyCode)) {
			if ((mViewFlags & ENABLED_MASK) == DISABLED) {
				return true;
			}
...................................................................
	}

	public boolean onKeyUp(int keyCode, KeyEvent event) {
		if (KeyEvent.isConfirmKey(keyCode)) {
			if ((mViewFlags & ENABLED_MASK) == DISABLED) {
				return true;
			}
...................................................................
	}

	private boolean isHoverable() {
.................................................................
		if ((viewFlags & ENABLED_MASK) == DISABLED) {
			return false;
		}
....................................................................
	}

public boolean onTouchEvent(MotionEvent event) {
		final int viewFlags = mViewFlags;

		if ((viewFlags & ENABLED_MASK) == DISABLED) {
			if (event.getAction() == MotionEvent.ACTION_UP && (mPrivateFlags & PFLAG_PRESSED) != 0) {
				setPressed(false);
			}
............................................................
}

可以看到,Enable false 把key event和 touch event都屏蔽掉了。
【MATLAB例程】基于TDOA定位(两步最小二乘)的三维轨迹定位和UKF滤波,TDOA的锚点可以自适应,附完整代码 该代码实现了一种**融合TDOA(到达时间差)定位与无迹卡尔曼滤波(UKF)**的动态目标轨迹跟踪方案,适用于三维空间中的移动目标定位与滤波。TDOA定位:通过两步加权最小二乘法(TS-WLS)解算目标位置。UKF滤波:对定位结果进行非线性滤波,抑制噪声并提升轨迹平滑性。多维度误差分析:对比滤波前后误差,评估算法性能。 阅读详情

相关推荐

CMMI AIM 人工智能成熟度框架:31个过程域的157项AI实践集成

CMMI AIM人工智能成熟度框架为企业提供了系统化管理AI项目全生命周期的解决方案,包含31个过程域的157项AI实践。该框架通过四个演进阶段(混沌与风险、结构与凝聚、验证与信任、价值与增长),帮助组织建立可持续的AI能力成长路径,降低项目失败率并提升商业价值。

weixin_42613501的博客 355

android setenabled button 无效,尝试调用虚拟方法“无效android.widget.Button.setEnabled(布尔值)”上的空对象引用...

private Button buttonLogin;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);Button buttonLogin = (Button)findView...

weixin_35742852的博客 688

2024年【MCM/ICM】美国大学生数学建模竞赛优秀论文(免费下载)

美国大学生数学建模竞赛(MCM/ICM)由美国数学及其应用联合会主办,是最高的国际性数学建模竞赛,也是世界范围内最具影响力的数学建模竞赛,一般也指数学建模竞赛。赛题内容涉及经济、管理、环境、资源、生态、医学、安全、等众多领域。竞赛要求三人(本科生和研究生均可参加)为一组,在四天时间内,就指定的问题完成从建立模型、求解、验证到论文撰写的全部工作,体现了参赛选手研究问题、解决方案的能力及团队合作精神。为现今各类数学建模竞赛之鼻祖。

weixin_43608857的博客 1842

android按钮setEnabled,android Button.setEnabled()关闭后开启不了的解决方法

注册界面,判断注册信息EditText框是否为空,空则使提交Button不能触发private EditText ev1, ev2, ev3;private Button btn1;ev1 = (EditText) findViewById(R.id.et1);ev2 = (EditText) findViewById(R.id.et2);ev3 = (EditText) findViewById...

weixin_39720003的博客 1674

储能系统架构和控制

探讨了储能系统中EMS(能源管理系统)、BMS(电池管理系统)和PCS(功率转换系统)之间的协同机制,以及组串式和集中式储能系统的技术架构、优势和局限性。EMS根据电价、电网需求和电池状态制定充放电策略,BMS提供电池数据,PCS执行充放电控制。组串式系统具有独立管理和灵活扩展的优势,但成本较高;集中式系统成本效益高,但存在环流和木桶效应问题。

蓝龙宝藏的博客 3969

单神经元PID控制:从Hebb到Delta,四种学习规则在MATLAB里到底怎么选?

本文深入探讨了单神经元PID控制算法在MATLAB中的四种学习规则(无监督Hebb、有监督Delta、有监督Hebb及改进Hebb)的实战对比与选型指南。通过详细的仿真实验和性能指标分析,为工程师提供了基于实际工程考量的选型建议和参数整定技巧,帮助优化复杂非线性系统的控制效果。

weixin_31220401的博客 283

Android View方法setClickable,setEnabled,setFocusable的含义及区别

View方法setClickable,setEnabled,setFocusable的含义及区别 setClickable设置为true时,表明控件是否可以点击,设置为false时候,控件无法被点击; 注意,setOnClickListener方法会默认把控件的setClickable设置为true。setEnabled使能控件,如果设置为false,该控件永远不...

赵星海 2541

深入浅出一文搞懂Raft协议

前言 在分布式的世界里,要说最核心最复杂的功能,一致性的实现无出其右,之前的paxos算法堪称经典,被认为是同类算法中效果最好的,基本上成为分布式一致性的代名词,但是paxos算法也是出了名的难理解,而且相当不好实现。本人也花了很多时间、看了很多材料也没有真正理解。所以基于paxos的思想进行的一致性算法的简化和实现就成为了现实的需求,在此背景下,本文的主角Raft就出现了。 Raft算法的头号目标就是容易理解(UnderStandable),这从论文中就可以看出来。当然,R...

microGP的专栏 6486

Android Enable 和clickable

setClickable():设置成true时,按钮为可点击,设置为false时,按钮不可点击,不能响应点击事件,但此时如果setEnabled()为true,那么按钮即使不可点击(setClickable()为false),也会产生变化(一闪一闪)。其实区别就在上面说的几个小地方,总的来看,setEnabled()相当于总开关,控制着按钮的状态,而setClickable()相当于具体的某个开关,控制这个开关是否可以点击。设置为false,该控件永远不会活动,不管设置为什么属性,都无效;

weixin_42504805的博客 947

8-阿里云服务器 ECS配置R及Studio Server

步骤概览:(首先要明确自己的系统然后进行安装)

hx2024的博客 1572

在 SAP BTP ABAP 环境中测试多租户 SaaS 解决方案的完整实践指南

ABAP SaaS测试阶段关键实践 在SAP BTP ABAP环境中开发多租户SaaS解决方案时,测试阶段(TST)对确保产品质量尤为关键。测试阶段应包含两个主要维度: 业务功能验证: 通过软件组件管理确保测试环境与代码仓库同步 创建并验证业务角色分配,确保权限配置正确 测试Fiori Launchpad导航流程和跨应用跳转 验证inbound/outbound通信配置 自动化质量管控: 在开发环境(DEV)执行本地ATC检查和单元测试 通过ABAP Test Cockpit(ATC)进行代码质量检查 集成

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 298

Android中View的Clickable和Enabled的区别与原理

View的setClickable(setLongClickable方法与此类似)和setEnabled方法相信大家都用过,根据方法名来理解就是设置View可不可以点击以及可不可用,但是可不可以点击以及可不可用具体表现出来又是怎样呢?他们之间又有什么区别呢?在看源码之前可能心里多多少少有点迷糊,那么,我们就来到源码里一探究竟。阅读本篇文章需要了解基本的事件分发机制,不了解的可以先去郭霖大神的博客学习

mikechenmj的博客 1万+

uni-app - 解决 H5 微信公众号授权登录后,无法回退到 “上一页“ 的问题(微信登录后如何返回到触发它的那一页?无法通过 uni.navigateBack() 返回到前一页的问题?)详细教程

uniappH5微信登录重定向后无法返回到原来进入前的页面了,uni-appH5微信浏览器中授权微信登录后,无法正常回退问题,uniappH5微信登录后怎么返回上一页,uniapp公众号登陆后使用uni.navigateBack()回不去上一页,uniapp微信登录成功后返回页面后一直自动刷新页面,uniapph5授权成功后如何返回上一页,uniappH5微信登录后怎么返回到触发它的那一页去,公众号h5在授权后如何跳转回到刚进入时的页面,微信公众号H5网页返回上一页疑问,解决微信H5静默授

🏆 前端领域优质创作者 7715

关于安卓View的setEnabled和setClickable的思考

我们讲结合setOnClickListener和setOnTouchListener以及setEnabled和setClickable的相互影响。以及View遮盖是否能穿透事件进行分析阐述。首先我们搞一个布局:<?xml version="1.0" encoding="utf-8"?> <com.example.airy.click.R1 android:id="@+id/r1" x

AndroidMsky的博客 6968

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

android textview disable,Android TextView disable颜色坑

今天在项目中发现我们有一个小细节以前运行好好的视觉效果现在不对了,应该说有一段时间不对了,只是没有关注这一个小细节,刚好今天改代码碰到他,就探究了一下,顺便把解决方案给记录一下。还原整个过程这里我们来还原一下整个过程,我们就写一个类似的效果来复现一下整个过程,看看到底是什么原因。布局我有如下一个TextView的布局:这里就一个TextView, 内容就直接写在这里了,设置的textColor为w...

weixin_28049429的博客 708

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

android textview setclickable,android – setEnabled(),setClickable()无效

我使用了FrameLayout,其中我使用了两个LinearLayouts.第二个最初是不可见的,但是当我按下布局1上的按钮时,第二个布局变得可见并且与第一个布局重叠.我想要的是当我的第二个布局出现时,第一个布局的元素不应该是可点击的(或启用的).为此我尝试了setEnabled(false)和setClickable(false),但这两个都不起作用我没有得到什么问题.代码如下TableLayo...

weixin_39688035的博客 340

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Android 布局 ViewGroup 置灰

Android 布局 ViewGroup 置灰 如果对 button 控件 setEnabled(false),会把 button 控件置灰,同时使得 button 无法点击。 如果需要置灰(enable false)的控件是一个 ViewGroup,不仅需要对 ViewGroup setEnabled(false),而且要对它的每个子 view 都 setEnabled(false)。 View...

okclouderx的博客 2235

android setenabled 子控件,Android ListView child View setEnabled() and setClickable() do nothing

There are multiple reasons why your approach will not work.1) onItemClick is only called due to keyboard events. Specifically KeyKevent.KEYCODE_ENTER. It is not called via any other code path. So, han...

weixin_39854288的博客 192

setFocusable、setEnabled、setClickable区别

setClickable设置为true时,表明控件可以点击,如果为false,就不能点击;“点击”适用于鼠标、键盘按键、遥控器等;注意,setOnClickListener方法会默认把控件的setClickable设置为true。setEnabled使能控件,如果设置为false,该控件永远不会活动,不管设置为什么属性,都无效;设置为true,表明激活该控件,控件处于活动状态,处...

dianwei5413的博客 1061

android kotlin快速,Kotlin 中优雅的解决快速点击

Kotlin 中优雅的解决快速点击Kotlin,快速点击,双击,点击事件时间:2019.11.25在客户端开发经常碰见控件快速点击的问题。测试人员在进行暴力测试的时候,经常会对着某个按钮狂点,然后给我们提一堆 bug,解决这种 bug 不需要太高的技术要求,但是消耗了我们大量的工作量。我们终究需要一种优雅的方案,来全面的避免类似问题的产生。方案一 记录最后一次点击时间戳在很多项目中都看到这样的工具...

weixin_27012987的博客 1220

android关于setenabled的问题

private OnClickListener settingOnClickListener=new OnClickListener() { @Override public void onClick(View v) { FragmentManager fm=getSupportFragmentManager(); FragmentTransaction ft=fm.beginTransa

zhataijing5403的博客 3088

Android开发 屏蔽Button setClickable和setEnabled

今天想让按键暂时无效,满足一定条件下才可以被用户按到。最初以为是setClickable,谁知搞错了。 请看手册: public void setClickable (boolean clickable) Since: API Level 14 Sets whether this node is clickable. Note: Cannot be called from an

yanzi1225627的专栏 4万+

android中关于 button有三种状态的设置 enabled的设置

我们一般按钮按下抬起有两种状态,比如颜色深的变为浅的;当我们想要禁止当前按钮并有第三种状态颜色出现时就要用到enabled这个属性了。 在资源文件中创建:     deep_red_round_shape" android:state_pressed="true">     deep_red_round_shape2" android:state_enabled="false">

lienyin的博客 3万+

android Button.setEnabled()关闭后开启不了的解决方法

注册界面,判断注册信息EditText框是否为空,空则使提交Button不能触发 private EditText ev1, ev2, ev3; private Button btn1; ev1 = (EditText) findViewById(R.id.et1); ev2 = (EditText) findViewById(R.id.et2); ev3 = (EditText) findVi

iamZ2z的博客 5319

Android设置“android:clickable="false"无效。点击事件依旧触发

今天设置 TextView  为  android:clickable="false"   我的想法是 在代码里先添加上点击事件操作。。  tv_click.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {

a872822645的博客 8808
上一篇: java 学习书籍-想精通java的必看
下一篇: Android中SQLite应用详解
fyfcauc
博客等级 码龄12年 153粉丝 426原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值