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

安卓:没有在RecyclerView内部的自定义视图中删除onPreDrawListener

安卓(Android)是一种基于Linux内核的开源操作系统,主要用于移动设备和平板电脑。它具有广泛的应用场景,包括智能手机、平板电脑、智能电视、智能手表等。

在安卓开发中,RecyclerView是一种用于显示大量数据集合的高级视图容器。它是ListView的改进版,提供了更好的性能和灵活性。RecyclerView内部的自定义视图可以通过添加或删除onPreDrawListener来实现。

onPreDrawListener是一个接口,用于在视图绘制之前执行一些操作。通过添加onPreDrawListener,可以在视图绘制之前对自定义视图进行修改或删除操作。

在RecyclerView内部的自定义视图中删除onPreDrawListener,可以通过以下步骤实现:

  1. 获取RecyclerView的LayoutManager对象:通过RecyclerView.getLayoutManager()方法获取RecyclerView的LayoutManager对象。
  2. 获取自定义视图:通过RecyclerView的LayoutManager对象,可以获取到RecyclerView中的自定义视图。
  3. 删除onPreDrawListener:通过自定义视图的getViewTreeObserver()方法获取ViewTreeObserver对象,然后使用ViewTreeObserver.removeOnPreDrawListener()方法删除onPreDrawListener。

以下是一个示例代码:

代码语言:txt
复制
RecyclerView recyclerView = findViewById(R.id.recyclerView);
RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
View customView = layoutManager.getChildAt(position); // 获取自定义视图
ViewTreeObserver viewTreeObserver = customView.getViewTreeObserver();
ViewTreeObserver.OnPreDrawListener listener = new ViewTreeObserver.OnPreDrawListener() {
    @Override
    public boolean onPreDraw() {
        // 在视图绘制之前执行的操作
        return true;
    }
};
viewTreeObserver.removeOnPreDrawListener(listener); // 删除onPreDrawListener

安卓开发中,RecyclerView常用于展示大量数据,例如聊天记录、商品列表等。它具有灵活的布局管理器和适配器,可以根据需求实现不同的布局和交互效果。

腾讯云提供了一系列与安卓开发相关的产品和服务,例如移动推送服务、移动直播、移动分析等。您可以通过腾讯云移动开发产品官网(https://cloud.tencent.com/product/mobile)了解更多相关信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

2-VII-RecyclerView事件

[1].本文接上文:RecyclerView基本使用 [2].RecyclerView把很多事都交给了我们,就连item点击事件都没有 [3].adapter中加载布局时候,可以为item...添加事件 [4].没有点击效果,还要自己添加点击选择器 [5].RecyclerView增删条目以及条目运动效果 ---- 一、点击事件 方式1.修改:FirstRvAdapter#onCreateViewHolder...rv点击1.gif ---- 二、背景选择器 添加点击效果:可以自定义选择器 为item背景添加:自带波纹样式选择器 //有边界 android:background="?...rv点击2.gif 也可以自定义水波纹样式: v21及以上有效果 <?xml version="1.0" encoding="utf-8"?...增加与删除.gif 本文由张风捷特烈原创,转载请注明 更多技术欢迎访问:https://www.jianshu.com/c/004f3fe34c94 张风捷特烈个人网站,编程笔记请访问:http

62240

面试一线互联网公司Android中高级开发工程师必问面试题集锦

前言 今天我们说说中高级开发工程师岗位在大公司应聘中复习方向: 用人单位对中高级开发工程师方面的要求 已经火了这么多年了。现在如果还从事开发,基本上都是中高级开发工程师。...那么用人单位在对中高级开发工程师方面的要求要达到什么程度呢? 回答这个问题之前,我先说一下中高级开发工程师薪资水平吧。至于为什么,先说这个。因为我怕接下来你没有动力去看,去学习,去提高。...一、java方面 1.接口意义(百度) 2.抽象类意义(乐) 3.内部作用(百度,乐) 4.父类静态方法能否被子类重写,为什么?...区别(小米、乐、百度) 17.Java多态(乐) 18.什么导致线程阻塞(58、美团) 19.抽象类接口区别(360) 20.容器类之间区别(乐、美团) 21.java 内部类(小米) 22....(乐、小米) 总结 目前想换一个18K以上,尤其是想拿到25K以上;想从一个初级开发工程师进阶到中高级开发

2.3K40
  • Android ListView与RecycleView对比使用解析

    1是系统给一个item布局,最后一项是String数组,也就是数据,之后寻找ListView实例,调用setAdapter方法设置适配器 public class MainActivity...,但是,我们知道第二个参数是提供一个item布局,这个布局过于简单,我们想要实现一个自定义布局怎么办?...使用步骤: 1.布局文件中使用RecyclerView,定义id,宽高与空间相同 2.准备RecyclerView子项item布局,之后要在适配器类中使用,这里就不在赘述 3.定义个泛型类,如之前...,但是我们RecyclerAdapter里定义了一个内部类ViewHolder,使其继承了RecyclerView.ViewHolder,所以我们就可以尖括号里直接调用内部类 我们先来看一下ViewHolder...7.设置onClick方法,RecycleView里没有onClick方法,需要我们自己写,在哪里写呢?RecycleAdapter中onBindViewHolder方法中 ?

    1.7K10

    学习笔记 | Android Studio开发入门经验总结 干货

    DISTRIBUTION表示如果支持该版本以上设备,则预估能支持设备占所有设备百分比。...可见Minimum SDK越小所能支持设备越多,但没有必要一味追求支持更多设备,这需要根据一定市场调查与经验来决定。本项目选择支持默认6.0及以上。...3.2 项目文件及目录结构简介 应用配置文件AndroidManifest.xml: 用于配置包名、应用权限、应用图标及名称、主题等基本信息,此外包括了应用Activity相关配置,没有在此进行注册...values: arrays.xml: 存放数组,程序中按照自定义数组名进行读取。 colors.xml: 存放Hex色值,程序中按照自定义颜色名字进行读取。...3.3.5 回收型列表视图RecyclerView使用 RecyclerView是基于viewholder回收理念在ListView上一个升级版,功能强大,当然不需要进行回收场景就当然不要用了

    2.4K60

    RecycleView从0到0.1 | 技术创作特训营第一期

    一、文章快速总结RecycleView是列表,可以灵活控制每一项数据,布局,动画。Adaper是整体适配器,逻辑放在这里。Holder是每一项内容,把控件初始化放在这里。...,其中VH是我们adapter类中创建一个继承于RecyclerView.ViewHolder静态内部类。...----事件监听  RecyclerView没有给我们提供现成点击事件监听,需要我们自己去实现。...我们可以RecyclerViewAdapter中自定义一个接口,并创建一个供其他类设置监听方法。...如果你想实现长按也是同样方法,自定义接口中多加一个长按方法,然后holder.itemView调用setOnLongClickListener()去将长按事件转移到自定义接口上。

    43811

    天气预报app(三)——城市管理、数据库操作

    ✅简易天气app(一)——解析Json数据、数据类封装 ✅简易天气app(二)——适配器、每小时数据展示 简易天气app(三)——城市管理、数据库操作 ✅简易天气app(四)—...(源码见页尾✨) 本项目用到天气api接口天气api 详细操作内容见第一篇-->简易天气app(一)——解析Json数据<-- 此接口当我们默认不拼接参数,直接访问会得到当前位置温度Json...数据,这不就弥补了我们定位方面的缺陷了吗,那么很好,当我们加上参数之后(此api根据城市查询参数需+&city=(城市名称))那么,当我们只加了参数却没有加参数值(&city=)他还是会根据当前位置进行定位...所以接下来就是进行SQLite数据库一些操作,把当前位置信息保存到数据库中(城市名,城市温度,更新时间) 待实现效果: 数据库成功插入当前位置数据信息(之前测试插入过几条测试对照用数据):...,,自行拓展,只要工具类删除方法写对,无非就是添加个事件调用删除方法 更精细化搜索城市,主动根据搜索到城市添加城市到数据库,后篇文章会逐渐完善,此篇文章主要是数据库一些操作和适配器添加点击事件,订阅此栏可同步获取项目搭建过程

    1.5K30

    金三银四要来了?不要慌,Android高级面试题刷一刷

    app加固如何做? 混淆原理是什么? 谈谈你对签名理解 为什么WebView加载会慢呢? 如何优化自定义View FC(Force Close)什么时候会出现?...Android Apk V1 签名原理 说下虚拟机和java虚拟机原理和不同点?...采用自动垃圾回收机制,请说下内存管理原理? 开放性问题:如何设计垃圾回收算法? Android中App是如何沙箱化,为何要这么做? 一个图片在app中调用R.id后是如何找到?...如何自己实现RecyclerView侧滑删除RecyclerViewItemTouchHelper实现原理 如何实现一个推送,消息推送原理?推送到达率问题?...没有给权限如何定位,特定机型定位失败,如何解决? Debug跟ReleaseAPK区别? android文件存储,各版本存储位置权限控制演进,外部存储,内部存储 有什么提高编译速度方法?

    1.4K30

    【翻译】Kotlin 1.1 新版本同样适合开发者

    更重要是,今天我就要把这些都展示给您,让您知道开发程序过程中是多么爽快。 类型别名:让你事件监听更具可读性 当然,类型别名是有很多用处。...众所周知, RecyclerView 和 ListView 一样没有标准处理单项视图点击事件方式,所以我们必须动手自己写。...这是因为 Kotlin 1.0 版本中我们没有一种有效方式来抛弃那些不需要使用参数。...这里有几个例子: 第一个是你很可能希望看到 Jetbrains 官方提供库: kotlinx-coroutines-android ,这个库实现了协程使用。...这边文章发布类目:,访客文章和新闻标签下,订阅他永久地址。

    1.1K60

    金九银十要来了?不要慌,这些Android BAT高级面试题刷一刷

    app加固如何做? 混淆原理是什么? 谈谈你对签名理解 为什么WebView加载会慢呢? 如何优化自定义View FC(Force Close)什么时候会出现?...Android Apk V1 签名原理 说下虚拟机和java虚拟机原理和不同点?...采用自动垃圾回收机制,请说下内存管理原理? 开放性问题:如何设计垃圾回收算法? Android中App是如何沙箱化,为何要这么做? 一个图片在app中调用R.id后是如何找到?...如何自己实现RecyclerView侧滑删除RecyclerViewItemTouchHelper实现原理 如何实现一个推送,消息推送原理?推送到达率问题?...没有给权限如何定位,特定机型定位失败,如何解决? Debug跟ReleaseAPK区别? android文件存储,各版本存储位置权限控制演进,外部存储,内部存储 有什么提高编译速度方法?

    1K00

    Android材料设计之Behavior攻坚战

    回调和onNestedPreScroll回调 ---- 一、简单认识 1.使用 CoordinatorLayout和AppBarLayout那篇貌似也没有碰到Behavior啊 不过仔细想一下,好像有个地方比较特殊...app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 2.string字符串: 再看一下这个string是什么鬼==>原来是一个...design包中内置一个字符串 看起来很像一个类名有没有:AppBarLayout内部类ScrollingViewBehavior <string name="appbar_scrolling_view_behavior...Behavior 1.既然<em>安</em><em>卓</em><em>内部</em>可以玩,那么我们也可以<em>自定义</em>玩玩 /** * 作者:张风捷特烈 * 时间:2018/11/28 0028:17:02 * 邮箱:1981462002...onDependentViewChanged(CoordinatorLayout parent, View child, View dependency) { return true; } } ---- 2.模仿<em>安</em><em>卓</em>内置

    1.3K31

    吐槽下手机_吐槽手机像素不好说说

    大家好,又见面了,我是你们朋友全栈君。 吐槽下手机 手机问题: 1、机子运行时间长了,都需要折腾,这就跟电脑一样,3-6个月恢复一次系统才快。...很少有系统不预装自己软件。 2、手机为了炒作,很多配备多核CPU,导致发热量很大,掉电很快,手机发烫厉害影响手感。...联想内置软件也不多,VIBE挺流畅,双击亮屏,画V拍照,智能节能做挺不错,但是外观和宣传一般,而且收购摩托之后产品线拉太长,自己内部产品互博,联想砍掉了VIBE、ZUK等子品牌,走下坡路,可同样有多条产品线...酷派穷途末路巨亏时候被乐收购,平心而论,酷派和乐手机外观和功能都还是挺好,产品也是做很有特色,如果乐手机不遇到这么严重资金链问题,酷派和乐手机都还是挺有前途,但是现在酷派和乐濒临倒闭和被收购边缘...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除

    53110

    天气预报app(二)——适配器、每小时数据展示

    ✅简易天气app(一)——解析Json数据、数据类封装 简易天气app(二)——适配器、每小时数据展示 ✅简易天气app(三)——城市管理、数据库操作 ✅简易天气app(四)—...详细讲解C一下,第一篇就是,讲非常全面,附加地址Android RecyclerView最全使用详解 布局效果 需要添加RecyclerView <LinearLayout android...layout_width="match_parent" android:layout_height="match_parent" /> id自定义名字...,主要时MainActivity里新增private RecyclerView rlvHourWeather;并findByView注册拿到之后就可以添加适配器了,想要哪个小页面传到这个RecyclerView...,里面的json数据格式化之后形式,首先为了下面的讲解代码流畅性,这次先从解析此api接口json数据入手 首先百度前往一个在线Json解析网站https://www.json.cn/ 或者是

    1.1K80

    天气预报app(四)——搜索城市、完善页面

    ✅简易天气app(一)——解析Json数据、数据类封装 ✅简易天气app(二)——适配器、每小时数据展示 ✅简易天气app(三)——城市管理、数据库操作 简易天气app(四)—...先获取到全国各个城市信息,展示搜索城市页面,方便查找。...CityAdapter适配器: 前面文章提到过,略过过了就,, 指路==>适配器写法: 简易天气app(二)——适配器、每小时数据展示 根据目录适配器HourWeatherAdapter索引...后续会更新,适配器也是提供ArrayAdapter,传入是全国所有市String[]数组。...,都显示一个页面还得滑动屏幕一个个找; 那么,二级RecyclerView不妨考虑一下:先显示全部省,点击省时,弹出市; 亦或者Spinner、两个RecyclerView联动,等等方法;==(源码已给

    1.8K50

    重拾自定义View之表格封装实现

    今天开始更新【重拾】系列文章。 因业务需要又要做一个 Android 原生项目,记录下时隔几年之后再开发那些事。...讲不会太基础,基本上是自定义View封装,复杂功能实现等等,有需要小伙伴可以关注~ 对表格支持不是太友好,前端很快能实现简单表格,写的话要费很大精力。...拿到需求之后,稍微复杂点功能在 github 上搜一下有没有好用第三方框架,无疑是最节省时间。...我们这里用是组合方式,即把已有的控件组合起来形成符合需求自定义控件。...以上就是表格自定义 View 实现和封装。 三、使用 封装完之后就是使用啦,需要使用页面的 xml 布局文件中引入封装好自定义 View 即可 <?

    83500

    2017年你绝对想尝试25个新安库(持续更新中...)

    这是一份2017年1,2月份发布25个最佳列表,你应该会喜欢,虽然是按顺序排列,但排名不分先后。让我们开始吧!...1487213029639021.png 3.StyleableToast 这是另外一个创建自定义Toast库。 多个自定义选项让你app和用户体验与众不同!...1487388381125153.png 14.ShimmerRecyclerView 一个可以加载数据时候显示闪烁(Shimmer)RecyclerView。...这次要介绍是一个面向对象数据库。greenrobot宣称:   性能是我们创建ObjectBox首要因素。之前我们创建了和SQLite上最快对象关系映射 (ORM) greenDAO。...根据README描述: Google Actions Java SDK是基于Node.js,但是没有一个镜像。

    1.4K20

    Android实现RecyclerView添加分割线简便方法

    1、前言 刚开始学习RecyclerView时候我跟着一个视频学,当时添加分割线是从外面导入一个Java类,然后使用里面的函数来创建分割线,所以一直以来我都是这样做。...2、创建一个简单RecyclerView 首先当然应该来一个RecyclerView,这里就不再赘述了,随便造点数据就好。...很明显,这个时候是没有分割线。 3、添加默认分割线 现在我们就来添加分割线,首先来试试最简单,也就是自带分割线。只需要加一行代码即可。...4、自定义分割线 有时候默认浅灰色分割线并不能满足我们要求,这时我们就需要自己“写”一条分割线了,那应该怎么写呢?...然后添加分割线代码改为如下: //添加自定义分割线 DividerItemDecoration divider = new DividerItemDecoration(this,DividerItemDecoration.VERTICAL

    2.9K21

    壹二APP开发实践回顾总结出40条精要

    ;最后采用是腾讯x5内核; 5、Https 证书支持(浏览器获取证书方式); 6、Glide v3.7 加载Gif 时候,缓存策略不能使用Result,不然显示不出来; 7、一个类中内部类又调用其他内部...9、自定义 RadioButton 没有效果,看看是不是构造方法attrs没有写对,以后记得要去看看继承View构造方法是怎么写; public ThemeRadioButton(Context...子View是动态测量设置宽度或者高度时也是有问题; 16、CardView 默认是带有背景色特定情况下,会出现背景色覆盖不了情况。...另外 CardView 阴影效果实现机制不一样,这个导致5.0前后是有差异性; 17、 友盟QQ分享 需要记得替换,不然回调异常; 18、RecyclerView 未设置 LayoutManager...31、RecyclerView LayoutParams 会是 MarginLayoutParams,如果重设一个 ViewGroup.LayoutParams将会报错, onBindViewHolder

    88740
    领券