首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于EditText屏蔽焦点的问题,及为什么clearFocus()方法失效了?

我们有时候的需求时,EditText 在不需要的时候,无法点击,或者取消它的默认焦点。 我们先看看通用解决方法。...android:focusable与android:focusableInTouchMode 前者针对在键盘下操作的情况,如果设置为true,则键盘上下左右选中,焦点会随之移动。...private Boolean fouces=false; //默认switch状态为false aSwitch.setOnClickListener(new View.OnClickListener...,如果propagate为true,可选地将更改向上传播到父层次结构,并放置新的焦点。...总结一下,也就是我们需要在父布局处添加 触控模式为true,即就是android:focusableInTouchMode="true",这样当清除焦点的时候,就会将焦点赋给父布局,而不是重置到第一个EditText

1.2K20

手把手教你读懂源码,View的Touch事件传递流程详细剖析

2、ViewGroup的dispatchTouchEvent 如果要很好掌握Touch事件处理,这部分要重点学习,而且不同Android版本的实现不一致,本文仍然使用最新的Android 7.1...变量disallowIntercept 用来标记是否允许拦截,默认为false,但是可以通过 requestDisallowInterceptTouchEvent方法来重置该变量的值。...返回为true的话则表示拦截事件,事件不在向子View中分发,若返回false的话,则表示不拦截事件,将继续分发事件。...而且会发现该方法中代码为一个递归调用,若其子View是ViewGroup则重复执行ViewGroup的dispatchTouchEvent方法,若其子View是View则执行View的dispatchTouchEvent...performClick方法 上面代码判断mOnClickListener是否为空,即判断该View有没有绑定OnClickListener监听器。

92570
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android开发笔记(一)

    在真正去开发一个独立的APP的过程中,我渐渐意识到将一些功能单独写成函数,一方面可以减少OnCreate()中的代码量,一方面在某一功能出现问题时可以折叠其他功能。...将界面始终保持为横屏或竖屏 比如说我们在使用一些社交平台的APP时,如果某些界面会自动旋转,一定程度上会使用户体验变得糟糕,因此不如固定其界面始终为横屏/竖屏,如以下代码便是将界面始终保持为竖屏: setRequestedOrientation...void onClick(View v) { finish(); } }); 去掉默认的绿色标题栏 默认生成的应用都有标题栏,十分不美观...,因此个人倾向想办法去掉。...在AndroidManifest.xml文件中,“android:theme” 一栏,将对应的内容替换为:android:theme="@style/Theme.AppCompat.NoActionBar

    32530

    Material Design 实战 之第三弹—— 悬浮按钮和可交互提示

    ); 2.2 Snackbar的make()后面连缀调用setAction()来设置一个动作 (两个参数:一参为bar栏右侧点击交互显示内容,二参为重写onClick()的OnClickListener...它默认会使用colorAccent来作为按钮的颜色, 我们还可以通过给按钮指定一个图标来表明这个按钮的作用是什么。 下面开始来具体实现。...Toast的作用是告诉用户现在发生了什么事情,但同时用户只能被动接收这个事情,因为没有什么办法能让用户进行选择。...不管是出现还是消失,Snackbar都是带有动画效果的,因此视觉体验也会比较好。 不过你有没有发现一个bug,这个Snackbar竟然将我们的悬浮按钮给遮挡住了。...举个简单的例子,刚才弹出的Snackbar提示将悬浮按钮遮挡住了, 而如果我们能让CoordinatorLayout监听到Snackbar的弹出事件, 那么它会自动将内部的FloatingActionButton

    1.8K30

    信息提醒之对话框(AlertDialog + ProgressDialog)-更新中

    textId, final OnClickListener listener) 从上述的源码中可以看出,setPositiveButton和setNegativeButton方法各有两个重载形式,实现的功能是一致的...OnClickListener为DialogInterface.OnClickListener中的类。响应用户的操作。 ?...,目前支持3种数据源:数组资源、数据集和字符串数组 checkedItems:该参数的数据类型为boolean[],这个参数值的长度要和列表框中的列表项个数相同,该参数用于设置每一个列表项的默认值,默认为...(); // 设置进度对话框为水平进度条风格 pg.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 案例说明: 本案例演示了水平和原型进度对话框的实现方法...Alpha的取值范围为0.0f ~ 1.0f之间,f表示float类型的数字。 默认1.0f ,完全不透明。 0.0f表示全透明,此时就看不到对话框了。 ?

    4.5K10

    不得不吐槽的Android PopupWindow的几个痛点(实现带箭头的上下文菜单遇到的坑)

    ,作为程序员也没有办法,只能去想办法去补救。...如果真这样,那实现自适应带箭头的上下文菜单不就很容易了么,事实证明还是会有些瑕疵。   ...,通过实例可以让人更加印象深刻,第一点已经有文章介绍了,下面实现一个带箭头的上下文菜单体会一下痛点二和三,到底怎么个痛法。...先上效果再上代码,代码里面的注释标注了痛点的地方。 上下文菜单效果图 默认向下弹出 ? 下面空间不足时先上弹出 ?  ...坚持写文章不容易,但是感觉遇到的问题就应该记录下来,好记性不如烂笔头,时间长了可以通过文章记录的知识快速为自己找到问题的解决方法。

    4K90

    Android常用对话框大全——Dialog「建议收藏」

    ;第二个参数:设置默认选中哪几项(数组); 五:或许上面几种对话框的款式都不是你需要或者喜欢的,那你肯定就需要开始自定义了;源码为我们提供了一个.setView()函数,这样我们就可以自定义对话框显示的内容了...六:完全自定义的对话框 上面我们说了可以通过调用.setView(view)方法,自定义其显示的内容;但是你会觉得这远远不够我还想把他的标题或者底部按钮给改了,那么就需要来个完全自定义了,如下:...相信大家之前都用的是popwindow来实现这个效果的,现在学会了这个是不是可以直接把他给替换了。...,只需要把他的样式设置为ProgressDialog.STYLE_HORIZONTAL即可。...当显示的内容比较少的时候他默认显示一点,这个时候就比较蛋疼了所以我们就要让他一显示就默认全部展开。

    4.2K30

    Android KeyEvent 点击事件分发处理流程(一)

    这次打算来梳理一下 Android Tv 中的按键点击事件 KeyEvent 的分发处理流程。...,如 Activity、 ViewGroup、 View,基于此: 事件分发:Activity 最先拿到 KeyEvent 事件,但没办法拦截自己处理(这里你们肯定有反对意见,我下面解释),然后将事件分发给...() 来处理事件,然后让其返回 true 或 false,停止事件的分发。...为某个具体的 View (如 Button) 设置 OnClickListener()----一般常用 这个应该是更常见的了,setOnClickListener,很多场景都需要监听某个控件的点击事件...通常情况下,都会含有 return super,因为我们没有必要对所有按键都进行拦截,有些按键仍旧需要继续分发处理,因为 Android 系统默认对很多特殊按键都进行了处理。

    4K60

    跟我学Android之十 对话框

    (Gravity.TOP|Gravity.LEFT, 20, 30); Toast 的外观除了默认情况外,也可以进行定制 u 1 、为 Toast 中显示的内容定制一个视图布局...android:textColor="#FFF" u 2 、采用动态加载的办法在程序中为 Toast 使用定制布局 LayoutInflater li = getLayoutInflater...创建对话框是最常用的办法 AlertDialog 是 Dialog 的直接子类 u 包含一个标题 u 包含一个文本消息 u 可以管理 0 ~ 3 个按钮...自定义对话框的实现思路 u 所谓自定义就是要摆脱对话框的固有模式,显示自定义的设计 u 首先需要做的是通过布局的方式将自定义内容的布局设计出来 Ø 一般会在 res/layout...类实现自定义对话框 u AlertDialog 是 Dialog 的子类,完全具备了 Dialog 的特性 u 对于 Dialog 来讲,如果没有设置 Title

    6000

    ImageButton和ZoomButton使用大全

    需要指出的是,为ImageButton按钮指定android:text属性没用,由于ImageButton的本质是ImageView,即使指定了该属性,图片按钮上也不会显示任何文字。...为了监听图标按钮的点击事件,在Java代码中为其添加点击事件监听器,具体代码如下: public class MainActivity extends AppCompatActivity {...ZoomButton 的行为基本类似于 ImageButton,只是 Android 默认提供了 btn_minus、btn_plus 两个 Drawable 资源,只要为 ZoomButton 的 android...为了监听几个组件的点击事件,在Java代码中分别为其绑定事件监听器,具体代码如下: public class MainActivity extends AppCompatActivity {...发现使用ZoomControls也能轻松实现需要达到的目的。 到此,这两个Button子组件ImageButton和ZoomButton已经学习完成,你都掌握了吗?

    1.3K80

    Android开发艺术笔记 | View的事件分发机制原理详析与源码分析(ing)

    而常用的OnClickListener,其优先级最低,即处于事件传递的尾端。...; onTouchEvent()/performClick()直接在自定义View文件中重写即可; onClick()的实现需要实现onClick; 当一个点击事件产生后, 其传递过程顺序:...(6)ViewGroup默认不拦截任何事件。 Android源码中 ViewGroup的onInterceptTouch-Event方法默认返回false。...= null)这个条件为false,将导致ViewGroup的onInterceptTouchEvent不会再被调用,并且同一序列中的其他事件都会默认交给它处理。...这是因为ViewGroup在分发事件时,如果是ACTION_DOWN就会重置FLAG_DISALLOW_INTERCEPT这个标记位,将导致子View中设置的这个标记位无效。

    99930

    A022-列表容器之ExpandableListView

    概述 本节课介绍Android中可实现二级可展开收缩列表的ExpandableListView容器,笔者感觉它非常难用并且难理解,很多时候我们可能需要对控件进行扩展和定制,然而它不太方便扩展,它使用难点主要在数据结构上和对控件的事件监听...,其他的实现方式类似ListView,下面会提供笔者在实际开发中使用到的案例。...上面实现的效果可展开的二级列表,每个组项都可能有若干个子项,默认的ExpandableListView不太美观,我们需要通过自定义布局类美化它,在使用过程中有一些需要我们去了解的点,会在实现过程提一下。...; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener...,原生的效果是完全不能满足我们的,这里提一点就是,熟练掌握API和解决问题能力很重要,不管UI怎么变我们都有办法去实现,可能只要我们找到对应的API设置一下或者看看有没有大神造好了轮子,终究我们还是可以找到解决方案

    92410

    【云+社区年度征文】探究 | 如何捕获一个 Activity页面上所有的点击行为

    所以,还需要想想其他的方案。 AspectJ 经过上述问题,我们又想到了一个办法,同样是进行代码埋点,使用AspectJ来解决我们的问题。...//AspectJ的配置代码就不贴了,需要的小伙伴可以看看文末的源代码链接 @Aspect class ClickAspect { @Pointcut("execution(* android.view.View.OnClickListener.onClick...所以这个方法是可行的。 AccessibilityService 到这里,问题也是有解决的办法了。但是还有没有其他的方案呢?...hook替换OnClickListener方案。这个方案主要是通过替换View中的mOnClickListener为我们自己的OnClickListener,然后进行点击事件的拦截处理。...参考 wanAndroid Android应用Activity、Dialog、PopWindow、Toast窗口添加机制及源码分析 反思|Android 事件分发机制的设计与实现 源码 PageClickMonitor

    1.1K90

    利用AOP对点击事件作防抖处理

    Header 最近项目中有一个需求,需要对重复的点击事件作过滤处理。 可能第一个想到的方法是在 OnClickListener.onClick 中根据时间间隔来判断,这也是比较传统的方案。...那么有没有一种方法是不需要改动源代码,就可以实现对点击事件去重的呢?当然有,我们可以利用 AOP 来实现一套方案。接下来就来讲讲这套方案就具体实现。...最基本的切点就是 View.OnClickListener.onClick 方法了。...所以可以得出第一个切点表达式: execution(* android.view.View.OnClickListener.onClick(..))...否则就判断是否两次点击时间间隔有没有大于规定的时间间隔,从而实现点击事件的去重。 到这里,基本就完事了,整下来代码其实也就没多少量。

    1.6K10

    开发时遇到监听的事件处理机制和SoundPool播放音效解决方法以及外部类的使用【Android】

    当指定的事件发生在事件源中时,将通知事件侦听器执行相应的操作 重写点击事件的处理方法onClick() public class MainActivity extends Activity {...; } } 只需让Activity类实现XxxListener事件侦听器接口,定义并重写相应的事件处理程序方法,例如在Activity:Activity中实现OnClickListener...侦听器(this) 让Activity方法实现OnClickListener接口 ,重写接口中的抽象方法 public class MainActivity extends Activity implements...自Android 2.0以来,谷歌推出了Stagefright,其架构略为简单。当然,它并没有完全放弃OpenCore。它主要构建了一个OMX层,该层仅指OpenCore的OMX组件。...默认值为false Android:numStars:显示多少颗星,必须是整数 Android:评级:默认评级值,必须是浮点数 Android:stepSize:每次得分所增加的值必须是一个浮点数

    1.5K10

    Android开发笔记(六十六)自定义对话框

    下面是Dialog的常用方法: Dialog构造函数 : 可定义对话框的主题样式(样式在styles.xml中定义)。如是否有标题、是否为半透明、对话框的背景等等。...setBackgroundDrawable : 设置内容视图的背景。 getDecorView : 获取当前窗口的顶层视图,可以理解为根部视图。...这个似乎也在哪里见过,看看这里有没有《Android开发笔记(二十)顶部导航栏ActionBar》,原来Activity的requestWindowFeature方法也用了Window:getWindow...不过这个滚轮控件不是本文的重点,可以利用开源代码实现滚轮,这里要做的是从页面底部弹出一个对话框,中间嵌入一个滚轮,通过滚轮来选择具体项,从而完成类似Spinner选择的功能。...下面记录滚轮控件的几个默认值,方便以后定制修改: 1、滚轮的默认背景,代码在WheelView.java的SHADOWS_COLORS 2、文字的默认大小和颜色,代码在AbstractWheelTextAdapter.java

    2.6K20

    android几种常见的启动模式

    发现每次都创建了该Activity的新实例。standard的加载模式就是这样的,intent将发送给新的实例。...如果回退,将退出应用。 singleTop模式,可用来解决栈顶多个重复相同的Activity的问题。...Android为提供这种机制,就引入了Task的概念。Task可以认为是一个栈,可放入多个Activity。...比如启动一个应用,那么Android就创建了一个Task,然后启动这个应用的入口Activity,就是intent-filter中配置为main和launch的那个(见一个APK文件部署产生多个应用安装的效果...那么现在我比如按home键,然后到应用列表中打开google地图,你会发现显示的就是刚才的地图,实际上是同一个Activity。 如果使用上面三种模式,是无法实现这个需求的。

    86960
    领券