Androidz之clickable
在android Button的xml文件属性中有这麽一个属性标签:
- android:clickable
该标签(继承自View的xml属性)的值必须是boolean值,即true、false。该标签目的是设置button是否可以被点击。
于是,我Demo一把,xml文件如下:
- <Button
- android:id="@+id/btn_to"
- android:clickable="true"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="to"
- />
不好意思,运行之后,该Button一如既往的好使,并没有“不可点击”。搞不明白、、、、
在 android 中几乎每一个xml属性,对应的都有一个方法,于是我改用下面的方法:
- setClickable();
心里想,这次应该可以了,示意代码:
- btn_to.setClickable(false);
- btn_to.setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View v) {
- // to do
- }
- });
再次运行,还是不行!没办法,看源码吧!
我们知道,点击 button 会触发下面的源码(View.java):
- public void setOnClickListener(OnClickListener l) {
- if (!isClickable()) {
- setClickable(true);
- }
- mOnClickListener = l;
- }
呵呵,你会明白,只要点击button都会将setClickable设置为true,所以在setOnClickListener之前setClickable设置为false只不过是多此一举!
那么,解决办法就出来了,调换一下代码的位置即可:
- btn_to.setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View v) {
- // to do
- }
- });
- btn_to.setClickable(false);
这样,你再次点击button试一试,呵呵,它无动于衷了吧!
yes,搞定!
- android:clickable
在android Button的xml文件属性中有这麽一个属性标签:
- android:clickable
该标签(继承自View的xml属性)的值必须是boolean值,即true、false。该标签目的是设置button是否可以被点击。
于是,我Demo一把,xml文件如下:
- <Button
- android:id="@+id/btn_to"
- android:clickable="true"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="to"
- />
不好意思,运行之后,该Button一如既往的好使,并没有“不可点击”。搞不明白、、、、
在 android 中几乎每一个xml属性,对应的都有一个方法,于是我改用下面的方法:
- setClickable();
心里想,这次应该可以了,示意代码:
- btn_to.setClickable(false);
- btn_to.setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View v) {
- // to do
- }
- });
再次运行,还是不行!没办法,看源码吧!
我们知道,点击 button 会触发下面的源码(View.java):
- public void setOnClickListener(OnClickListener l) {
- if (!isClickable()) {
- setClickable(true);
- }
- mOnClickListener = l;
- }
呵呵,你会明白,只要点击button都会将setClickable设置为true,所以在setOnClickListener之前setClickable设置为false只不过是多此一举!
那么,解决办法就出来了,调换一下代码的位置即可:
- btn_to.setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View v) {
- // to do
- }
- });
- btn_to.setClickable(false);
这样,你再次点击button试一试,呵呵,它无动于衷了吧!
yes,搞定!
在android Button的xml文件属性中有这麽一个属性标签:
- android:clickable
该标签(继承自View的xml属性)的值必须是boolean值,即true、false。该标签目的是设置button是否可以被点击。
于是,我Demo一把,xml文件如下:
- <Button
- android:id="@+id/btn_to"
- android:clickable="true"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="to"
- />
不好意思,运行之后,该Button一如既往的好使,并没有“不可点击”。搞不明白、、、、
在 android 中几乎每一个xml属性,对应的都有一个方法,于是我改用下面的方法:
- setClickable();
心里想,这次应该可以了,示意代码:
- btn_to.setClickable(false);
- btn_to.setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View v) {
- // to do
- }
- });
再次运行,还是不行!没办法,看源码吧!
我们知道,点击 button 会触发下面的源码(View.java):
- public void setOnClickListener(OnClickListener l) {
- if (!isClickable()) {
- setClickable(true);
- }
- mOnClickListener = l;
- }
呵呵,你会明白,只要点击button都会将setClickable设置为true,所以在setOnClickListener之前setClickable设置为false只不过是多此一举!
那么,解决办法就出来了,调换一下代码的位置即可:
- btn_to.setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View v) {
- // to do
- }
- });
- btn_to.setClickable(false);
这样,你再次点击button试一试,呵呵,它无动于衷了吧!
yes,搞定!
Androidz之clickable相关推荐
- Androidz之Activity概要学习
Androidz之Activity概要学习 1. Activity类概述 Activity(活动)是一个单独的.能获取焦点的,且能与用户交互的东西.所以我们通常在Activity类中的onCr ...
- button-xml 中android:clickable=false 属性
今天在做项目的时候,遇到了一个问题,就是需要把一个常按监听事件,加到一个linearlayout中,但是,这个linearlayout中有其他的button.textview等控件,这样就导致当我们常 ...
- Pressed状态和clickable,duplicateParentState的关系
做Android开发的人都用过Selector,可以方便的实现View在不同状态下的背景.不过,相信大部分开发者遇到过和我一样的问题,本文会从源码角度,解释这些问题. 首先,这里简单描述一下,我遇到的 ...
- android imageview 事件传递,Android 事件传递机制TextView,ImageView等没有默认clickable属性的View单独设置onTouch事件注意事项...
本文讲解TextView,ImageView等没有默认clickable属性的View单独设置onTouch事件 Android 事件传递机制:Android 事件传递机制初涉 我们知道 Button ...
- CodeLab:Android fundamentals04.1:Clickable images
Android fundamentals 04.1:Clickable images Tutorial source : Google CodeLab Date : 2021/04/06 Comple ...
- selenium Element is not clickable because another element obscures it — 点击被页面上其他元素遮住的控件,亲试有效!!!
点击被页面上其他元素遮住的控件 使用WebDriver点击界面上Button元素时,如果当前Button元素被界面上其他元素遮住了, 或没出现在界面中(比如Button在页面底部,但是屏幕只能显示页面 ...
- ionic4中使用Swiper触屏滑动--技术
这个demo只有HTML的内容,但我要在ionic4上使用,所以就把它修改后用在ionic上! 原文件 <!DOCTYPE html> <html lang="en&quo ...
- View的Touch事件分发(二.源码分析)
Android中Touch事件的分发又分为View和ViewGroup的事件分发,先来看简单的View的touch事件分发. 主要分析View的dispatchTouchEvent()方法和onTou ...
- Android CheckBox 点击的时候没有效果
写了一个CheckBox 点击的时候没有效果 感觉莫名其妙的,最后在xml 中设置了 android:clickable="true" 点击有效果了, 见鬼了.
最新文章
- JS获取当月每天的日期,JS获取本周每天的日期
- mysql事务隔离级别与设置
- 2016年12月20日感想
- 多线程的那点儿事(之自旋锁)
- Windwos Server 2008 R2 DHCP服务
- 简体,繁体中文互转类
- excel查找空值快捷键_『EXCEL定位条件快捷键』excel定位空值填充
- HART协议命令与UART串口解析
- html动态生成表格源码,JavaScript动态生成表格的示例
- 黑马程序员—我的面试,我的学习,我的经历
- decorview、window、dialog关系详解
- 纹波测试方法(收集整理)
- ppm调制matlab程序,求助:谁能帮我编写一个4ppm的解调程序 谢谢了
- 测试方法介绍-计算模型复杂度(GMac)、模型大小(M)、计算速度(FPS)
- 【eCPRI】(1)基本概念
- Unity 场景切换间的内存清理
- 宏转录组方法_Cell:基因表达的改变和群落的更替塑造了全球海洋宏转录组
- 用python可以免费下载音乐吗-使用python实现下载我们想听的歌曲,速度超快
- [ 生活 ] 我有一个想法!
- 一小时构建 IoT 音视频应用,声网发布灵隼物联网云平台