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

当ViewPager2的用户输入被禁用时,如何添加左右边缘效果

当ViewPager2的用户输入被禁用时,可以通过自定义ItemDecoration来添加左右边缘效果。

  1. 首先,创建一个继承自RecyclerView.ItemDecoration的自定义类,例如EdgeEffectDecoration。
代码语言:txt
复制
public class EdgeEffectDecoration extends RecyclerView.ItemDecoration {
    private Drawable leftEdgeEffect;
    private Drawable rightEdgeEffect;

    public EdgeEffectDecoration(Context context) {
        // 初始化左右边缘效果的Drawable,可以使用自定义的图片资源或者系统提供的边缘效果样式
        leftEdgeEffect = ContextCompat.getDrawable(context, R.drawable.left_edge_effect);
        rightEdgeEffect = ContextCompat.getDrawable(context, R.drawable.right_edge_effect);
    }

    @Override
    public void onDrawOver(@NonNull Canvas c, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
        super.onDrawOver(c, parent, state);

        int left = parent.getPaddingLeft();
        int right = parent.getWidth() - parent.getPaddingRight();
        int top = parent.getPaddingTop();
        int bottom = parent.getHeight() - parent.getPaddingBottom();

        // 绘制左边缘效果
        leftEdgeEffect.setBounds(left, top, left + leftEdgeEffect.getIntrinsicWidth(), bottom);
        leftEdgeEffect.draw(c);

        // 绘制右边缘效果
        rightEdgeEffect.setBounds(right - rightEdgeEffect.getIntrinsicWidth(), top, right, bottom);
        rightEdgeEffect.draw(c);
    }
}
  1. 在使用ViewPager2的地方,禁用用户输入,并将自定义的ItemDecoration添加到ViewPager2中。
代码语言:txt
复制
ViewPager2 viewPager = findViewById(R.id.viewPager);
viewPager.setUserInputEnabled(false); // 禁用用户输入

EdgeEffectDecoration edgeEffectDecoration = new EdgeEffectDecoration(this);
viewPager.addItemDecoration(edgeEffectDecoration); // 添加自定义的ItemDecoration

这样,当ViewPager2的用户输入被禁用时,左右边缘效果会被添加到ViewPager2中,提供更好的视觉体验。

注意:以上代码示例中的R.drawable.left_edge_effect和R.drawable.right_edge_effect是自定义的边缘效果图片资源,你可以根据实际需求进行替换。

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

相关·内容

Android开发笔记(一百七十二)第二代翻页视图ViewPager2

notifyItem***方法,从而动态刷新某项视图; 3、除了当前页,也支持展示左右两页部分区域; 4、支持在翻页过程中展示自定义切换动画; 虽然ViewPager2增加了这么棒功能,但它用起来非常简单...setPageTransformer:设置二代翻页视图页面转换器,以便展示切换动画。 接下来利用循环适配器搭配二代翻页视图,演示看看ViewPager2界面效果。...接着新建一个活动页面,往该页面的XML文件添加如下所示ViewPager2标签:     <androidx.viewpager2.widget.ViewPager2         android...,可见除了显示当前商品之外,左右两页也呈现了边缘区域。...撤销刚加边缘特效代码,再给测试页面的Java代码中补充下面几行:     // ViewPager2支持在翻页时展示切换动画     // 创建页面转换器,用于计算切换动画各项参数     ViewPager2

2.2K30

ViewPager2打造Banner轮播图

效果图 上图是天津地铁APPBanner也是本文要实现效果 一、如何使用ViewPager2 ①在app下build.gradle文件中添加如下依赖 implementation "androidx.viewpager2...适配器和RecyclerView使用一样,这里就不贴代码了 ⑤最后我们给ViewPager2设置上adapter即可 二、轮播图左右无线滑动 数据源第一位add最后一张图 val newList...= arrayListOf() newList.add(pic[pic.size-1]) 最后一位添加第一张图 for (item in pic) { newList.add(item...) } newList.add(pic[0]) ViewPager2滑动到第0位和最后一位时处理分别如下 位置 处理 currentPosition == 0 setCurrentItem(adapter.itemCount...- 2, false) currentPosition == adapter.itemCount - 1 setCurrentItem(1, false) ViewPager2添加滑动监听代码如下

2.2K50

ViewPager2打造轮播Banner

[效果图] 上图是天津地铁APPBanner也是本文要实现效果 一、如何使用ViewPager2 ①在app下build.gradle文件中添加如下依赖implementation "androidx.viewpager2...实现它圆角需要写一个style ④我们都知道ViewPager2适配器和RecyclerView使用一样,这里就不贴代码了 ⑤最后我们给ViewPager2设置上adapter即可 二、轮播图左右无线滑动...newList.add(item) } newList.add(pic[0]) 最后一位添加第一张图 ViewPager2滑动到第0位和最后一位时处理分别如下 位置 处理 currentPosition...添加滑动监听代码如下 关键点在onPageScrollStateChanged方法bannerVp.registerOnPageChangeCallback(object : ViewPager2...我们知道触摸调用setOnTouchListener即可,但是给ViewPager2使用时候你会发现不起作用。

1.7K30

ViewPager2实现内部Item动态滚动

然后写完后,相应加载回调是不是得自己再手动定义一个接口去伪造。比如不可见,页面加载,总体相对来说并不是那么容易。 就在我以为又可以摸鱼一个ViewPager2就可以搞定之时。...产品:得加一个第一次使用时提示啊,要不然用户都不知道页面可以下滑呢?效果我发你了,你看看: 下图为我实现好简单样式,大意体会即可。...接下来不却知道自己要开启了啪啪打脸时刻,满心欢喜,太easy啊,ViewPager2 真香! 打脸时刻 于是熟练开分支,切分支,写demo,调用方法,走起! 先看一下这个方法。...需要注意点 就如我上面最开始分析时所述,如果详情页是可滑动,那么就必须处理一下滑动冲突,相应方式也很简单,使用内部拦截法,让滑动View优先获得事件即可,处于滑动View顶部时,再将事件还给父...后续 当然用ViewPager2去写仍然有种大材小用感觉,毕竟只有两个item,所以,比较好方式依然是使用自定义滑动ViewGroup实现,所以我会在下篇博客来以一个自定义方式来解决此问题。

1.6K20

jquery使按钮置灰不可用

使用jQuery实现按钮置灰不可用效果在Web开发中,有时候我们需要在特定情况下将按钮置灰并设置为不可用状态,以防止用户重复点击或者暂时禁止某些操作。本文将介绍如何使用jQuery来实现这一效果。...按钮置灰不可用效果经常用于表单提交时,为了避免用户重复提交表单或者在表单提交过程中禁止其他操作。下面是一个示例代码,结合一个简单表单提交场景,演示如何使用jQuery实现按钮置灰不可用效果。...disabled是HTML中常用属性,用于禁用某些元素,例如按钮、输入框等,使其变为不可用状态。元素被禁用时用户无法与该元素进行交互,无法点击按钮、输入内容或选择选项等操作。1....特点:元素被禁用时,其外观通常会发生改变,呈现灰色,并无法触发与鼠标或键盘相关事件。被禁元素不会在表单提交时被包含在表单数据中,也不会被包含在表单中序列化字符串中。...被禁元素仍然会占据页面空间,但不会响应用户交互行为。4.

33410

ConstraintLayout+ViewPager2打造《摇一摇新年幸运签》App

大家肯定会有很多场景,会产生选择困难,所以是与不是这个模块就是解决此类问题添加! 新年也要动起来呀,刚好传统摇签可以用手机摇一摇来模拟效果,活动手腕一举两得(真是个好点子啊)!...接下来我想让上部分占百分之七十,下部分占百分之三十 添加Guideline控件,上下分的话设置orientation为horizontal,想要左右分改为vertical即可。...(item in pic) { newList.add(item) } newList.add(pic[0]) ViewPager2滑动到第0位和最后一位时处理分别如下 位置 处理 currentPosition...ViewPager2一屏多页效果 这里和ViewPager一屏多页有很大区别,ViewPager采用为给自身设置margin并设置clipChildren属性为false。...随机代码在Kotlin中很简单如下 (answerList.indices).random() 本来想加数据库,支持人为输入,后期慢慢实现吧。

69820

ConstraintLayout+ViewPager2打造《摇一摇新年幸运签》App

大家肯定会有很多场景,会产生选择困难,所以是与不是这个模块就是解决此类问题添加! 新年也要动起来呀,刚好传统摇签可以用手机摇一摇来模拟效果,活动手腕一举两得(真是个好点子啊)!...接下来我想让上部分占百分之七十,下部分占百分之三十 添加Guideline控件,上下分的话设置orientation为horizontal,想要左右分改为vertical即可。...(item in pic) { newList.add(item) } newList.add(pic[0]) ViewPager2滑动到第0位和最后一位时处理分别如下 位置 处理 currentPosition...ViewPager2一屏多页效果 这里和ViewPager一屏多页有很大区别,ViewPager采用为给自身设置margin并设置clipChildren属性为false。...随机代码在Kotlin中很简单如下 (answerList.indices).random() 本来想加数据库,支持人为输入,后期慢慢实现吧。

1.7K20

怎样在Android上实现一个iOS多任务列表效果

实践一下,如下效果: 1.png 左右效果果然不符合我们预期,item宽度是变小了,但左右padding一直空白着,经过一番尝试,最终通过一个属性解决了这个问题: viewPager.setClipToPadding...()=(A.left+A.width-A.left) / A.width = 1,所以从B位置滚动到A位置,position也从1变化到0,其他位置position以此类推,item已经在View...总结 最后总结一下,本篇介绍了如何基于ViewPager,实现了一个类似iOS多任务列表效果,主要目的在于验证方案可行性,即如何在已有控件基础上快速复用来实现我们要效果,虽然效果实现出来了,但对比...更新:        偶然看到androidx包下多了个ViewPager2,吃惊,看一下代码,注释如下: 1.png        可以看到,ViewPager2已经支持了从右到左布局了,也支持竖向布局...目前ViewPager2还是处于beta版,估计还有一些bug,期待后续正式上线

3.6K60

悬浮窗开发设计实践

height值用于指定悬浮窗高度。那么这个里面如何计算悬浮窗上下左右位置呢?...经过一圈效验最终还是回到WindowManagerGlobal中移除View3.6 拖拽回弹吸附先看微信效果当你拖动微信悬浮窗时候,手指松开,这个时候悬浮窗回到边缘,会有一个很友好动画过渡效果。...为何做该功能拖拽回到边缘,如果是直接调用updateLocation,那太生硬了。如何做友好动画这里可以添加属性动画,给动画设置时间,然后在动画执行获取坐标值。...中申请权限,为了防止用户手动在设置中取消权限,需要在每次使用时check一下是否有悬浮窗权限存在;Settings.canDrawOverlays(this)API > 25时,系统直接禁止用户使用TYPE_TOAST...如何实现悬浮窗左右吸顶效果?监听到手指抬起(UP事件)动作后,判断当前位置是靠近左边还是右边,靠近左边就以位置动画方式平移到左边,靠近右边就平移到右边。

2.4K40

安卓应用安全指南 5.3.2 将内部账户添加到账户管理器 规则书

4.0 实现认证器应用时,遵循下列规则: 5.3.2.1 提供认证器服务必须是私有的(必需) 前提是,提供认证器服务由账户管理器使用,并且不应该被其他应用访问。...5.3.2.2 登录界面活动必须由认证器应用实现(必需) 用于添加新帐户并获取认证令牌登录界面,应由认证应用实现。 自己登录界面不应该在用户应用一端准备。...恶意应用准备了和常规一样登录界面时,用户可能会在伪造登录界面中输入密码。...在认证令牌被禁情况下,用户可以再次输入密码以获得新认证令牌。 如果在密码泄漏时禁用密码,用户将无法再使用在线服务。 在这种情况下,它需要呼叫中心支持等,这将花费巨大成本。...如果之前安装认证器是恶意软件伪装,则用户输入帐户信息可能被恶意软件接管。 在执行帐户操作之前,用户应用应验证执行帐户操作帐户类型,不管是否分配了常规认证器。

99120

LeetCode动画 | 218.天际线问题

最近新学了Go语言,来尝试一下效果,同时后面也贴出了Java代码【线段树和线扫描】。 题目描述 城市天际线是从远处观看该城市中所有建筑物形成轮廓外部轮廓。...天际线 每个建筑物几何信息用三元组 [Li,Ri,Hi] 表示,其中 Li 和 Ri 分别是第 i 座建筑物左右边缘 x 坐标,Hi 是其高度。...[[2 9 10]]表示是一个建筑物,分别是左右边缘横坐标和高度。...但是如何区分左右端点高度呢?因为遇左端点要将高度入堆,遇右端点要将高度出堆。 我们可以这样设计,将左端点高度设置成负数,右端点高度还是原来值。...= 0 { return h[0] } return 0 } 线扫描法执行结果 执行用时 : 52 ms , 在所有 Go 提交中击败了 65.63% 用户 内存消耗

1K10

C语言编写简易病毒

,生成名字随机自身拷贝文件; 电脑强制关机; 2、计算机重新启动之后由于任务管理器已经被禁用,所以只在桌面恶意增殖,同时桌面背景更换并且键盘输入失效。...图2.4 修改注册表屏蔽用户键盘输入 修改注册表屏蔽用户键盘输入,此操作在用户重新启动计算机之后生效。...,首先是禁用任务管理器、注册表修改编辑器、修改注册表重启之后修改桌面背景以及屏蔽用户键盘输入,这些与注册表相关在注册表修改模块中已经指出,它们是执行模块一部分。...重启之后由于注册表已经被修改,所以此时桌面背景更换,效果如图3.6所示。并且用户输入被屏蔽,不管输入什么字母显示总是1,效果如图3.7所示。...由于病毒程序设置了开机自启动,但是此时并没有获得管理员权限,并且由于注册表已经被修改,所以此时病毒直接执行拷贝自身并在桌面产生垃圾文件,达到指定拷贝次数之后结束运行,但是如果用户打开txt文件,由于实现了注册表关联

4.5K31

桌面客户端性能提升,优化使用资源消耗

中加入自动重连功能,并支持将配置参数保存到配置文件中,减少了每次使用时参数输入;同时也修复了一些已知问题。...后续我们将继续优化这些性能问题,可以基本满足用户使用时在接收大量主题消息情况下,仍然能够保持较低 CPU 和内存使用率。...主题输入框提示在之前版本中,很多新手用户在使用时无法快速准确找到输入主题地方。建立连接后,我们需要手动输入主题并填写 payload 后,才能够发送消息。...在该测试版中,我们优化了主题输入提示功能,当用户输入主题时,提示框将显示高亮,以便提醒用户在界面中高亮主题输入框内输入发送主题。...图片命令行客户端MQTT X CLI 在 1.9.1-beta.1 测试版中,主要是添加了以下两个较大新功能,为用户提供更好使用体验。

87630

最新iOS设计规范六|10大交互规范(User Interaction)

请务必说明如何获取账户,或提供简单注册方式。 通过显示适当键盘来最大程度地减少数据输入。例如:在访问电子邮件地址时,请显示电子邮件键盘屏幕,其中包含有用数据输入快捷方式。 切勿使用“密码”一词。...如果你单独在APP做一个生物识别身份选择开关,则用户可能会看到这样一种状态:生物识别身份认证在系统内被真正禁用时,APP设置里却显示为已启用。 请勿使用图标来标识系统身份验证功能 。...以下情况后台读取将被禁用:NFC弹窗可见、电子钱包或Apple Pay正在使用、摄像头正在使用、设备处于飞行模式且重启后设备被锁定时。 同时支持后台和APP内读取。...避免与系统屏幕边缘手势冲突(边缘保护)。根据设备不同,屏幕边缘手势可提供对主屏幕和应用程序切换器、通知中心、控制中心和Dock访问。...例如:触觉提供持久价值时使用触觉模式;使用它们来增加新鲜感,会让你APP看起来花哨。此外,可以在少量重要、结果性交互中添加触觉。若为大量且琐碎交互操作添加触觉的话,则会让人头晕目眩。

4.1K30

皮肤引擎(HTMLayout)特性说明文档

如果被设置此样式对象有前景/背景色或图像填充, 光晕边缘会按背景轮廓绘制....在最后面添加 prepend              在最前面添加 recycle                  删除 accept-drop 用通过css选择符决定了容器可以接受被拖放对象范围...而在这里, 我们通过给它指定 behavior: check; 为它附加了复选框交互行为. 在使用时, 此元素会根据用户点击, 修改自己 :checked 状态. 从而改变自己背景图像表现....不同 behavior, 在使用时会有不同状态和相关属性进行互动....是我们脚本要处理事件标识. 具有 .item 类元素被鼠标悬停时, 会触发此事件并执行里面的代码. 下面是完整事件支持列表: 事件 说明 hover-on!hover-off!

28140
领券