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

Android:一旦我以编程方式禁用了scrollingviewbehavior,我就不能再次启用它

Android中的ScrollingViewBehavior是一个用于处理滚动视图行为的类。它可以与CoordinatorLayout一起使用,以实现一些常见的滚动效果,例如标题栏的隐藏和显示、视图的上下滑动等。

当你以编程方式禁用了ScrollingViewBehavior后,你可以通过以下步骤再次启用它:

  1. 获取你想要启用ScrollingViewBehavior的视图对象。
  2. 使用CoordinatorLayout.LayoutParams类的getBehavior()方法获取该视图的Behavior对象。
  3. 检查获取到的Behavior对象是否为ScrollingViewBehavior的实例。
  4. 如果是ScrollingViewBehavior的实例,说明该视图已经启用了该行为,无需再次启用。
  5. 如果不是ScrollingViewBehavior的实例,说明该视图没有启用该行为,你可以通过CoordinatorLayout.LayoutParams类的setBehavior()方法将ScrollingViewBehavior对象设置给该视图的Behavior属性,从而启用该行为。

以下是一个示例代码:

代码语言:java
复制
// 获取你想要启用ScrollingViewBehavior的视图对象
View scrollingView = findViewById(R.id.scrolling_view);

// 获取该视图的LayoutParams对象
CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) scrollingView.getLayoutParams();

// 获取该视图的Behavior对象
CoordinatorLayout.Behavior behavior = layoutParams.getBehavior();

// 检查获取到的Behavior对象是否为ScrollingViewBehavior的实例
if (!(behavior instanceof ScrollingViewBehavior)) {
    // 如果不是ScrollingViewBehavior的实例,将ScrollingViewBehavior对象设置给该视图的Behavior属性,从而启用该行为
    layoutParams.setBehavior(new ScrollingViewBehavior());
    scrollingView.setLayoutParams(layoutParams);
}

这样,你就可以再次启用ScrollingViewBehavior了。

ScrollingViewBehavior的优势在于它提供了一种简单而灵活的方式来处理滚动视图的行为。它可以与其他的Behavior组合使用,实现复杂的滚动效果。它适用于需要控制滚动视图行为的场景,例如在CoordinatorLayout中实现可折叠的标题栏、悬浮按钮等。

腾讯云相关产品中可能与Android开发相关的是移动开发平台(Mobile Development Platform,MDP),它提供了一站式的移动应用开发解决方案,包括应用开发、测试、发布、运营等环节。你可以通过腾讯云的官方网站了解更多关于MDP的信息:腾讯云移动开发平台

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

相关·内容

Android开发笔记(四十一)Service的生命周期

与生命周期有关的方法 onCreate : 创建服务 onStart : 开始服务,Android2.0以下版本使用 onStartCommand : 开始服务,Android2.0及以上版本使用...Service的方式 外部启动和停止 类似Activity的停,先声明一个Intent对象指定跳转的路径与数据,然后调用启动方法startService,停止则调用方法stopService。...setAutoCancel(true) //设置可以清除 .setContentTitle("啦啦啦") //设置下拉列表里的标题 .setContentText("跑到前台...可是Service经常要做一些异步的操作,比如说网络访问请求等等,这样就不能拖累Activity。...查看IntentService的源码,会发现其内部使用了线程HandlerThread,还使用了处理器ServiceHandler,相当于把Thread+Handler整套流程封装好了。

45740

简单理解Callable接口

Callable接口:   Callable,新线程的一种方式,返回结果并且可能抛出异常的任务,在前面的新线程的文章中用过,但是没有具体讲解   优点:     可以获取线程的执行结果,也称为返回值...Runnable的任务是不能有返回值的;   call方法可以抛出异常,run方法不可以   运行Callable任务可以拿到一个Future对象,表示异步计算的结果,它提供了检查是否计算完成的方法,等待计算的完成...,那么这个计算就不能被取消 FutureTask类:   FutureTask类实现了RunnableFuture接口,而RunnableFuture接口是继承了Runnable和Future接口,所以说...是这样的,之前用到的一般是用于云上,或者存储服务器下载电子文件,就是本身一个接口就是需要查询数据库并,进行结果的大量计算和结果转换的,同时还要上云上下载比较大的电子文件,所以我采用Callable...配合线程池来完成云上文件的下载; 作者:彼岸舞 时间:2020\10\04 内容关于:并发编程 本文来源于网络,只做技术分享,一概不负任何责任

71351

通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout

系统(Support V7)提供了AppBarLayout.Behavior, AppBarLayout.ScrollingViewBehavior, FloatingActionButton.Behavior.... enterAlways: 表示向上滚动时,这个View会随着滚动手势出现,直到恢复原来的位置. enterAlwaysCollapsed: 顾名思义,这个flag定义的是何时进入(已经消失之后何时再次显示...这里对AppBarLayout设置了一个监听,它有一个监听方法:addOnOffsetChangedListener监听折叠收缩的位移。...如果设计的需求不要求选项卡在切换时附带有图标的切换效果,仅仅文字的颜色发生变化响应用户的点击事件,那么TabLayout和ViewPager建立联系可以用官方提供的方法,它可以做到交互双向联动,也就是点击...ViewPagerOnTabSelectedListener(viewPager)); 其实这个setupWithViewPager(ViewPager viewPager)方法,跟进到源码里,你可以看到,就是调用了上面的两种方式

2.3K90

Jetbrains系列与JRebel本地激活服务器

(虽然感觉咱们国内的国情,即使人们赚了很多钱,也不会在这上面投入一分钱。) 废话不多说,项目在码云上,一个Java项目,按照说明用Maven构建。...分支了一下项目,添加了gradle支持,有需要的也可以用的分支。构建完毕之后,运行jar包即可。...最好还是放到自己的服务器上,或者用winsw等工具程序部署为Windows服务,让它后台自。...目前支持以下产品: Jrebel JRebel for Android XRebel JetBrains Products 需要注意,新版Jetbrains产品(例如Idea 2018.2.1)更改了激活流程...如果懒得构建和使用本地服务器,也可以在csdn、简书等博客上搜索,有很多人分享了他们部署的激活服务器,不过由于是别人的服务器,所以指不定哪天就不能用了

1.8K20

如何拉起被一键清除的安卓进程

后来发现到大部分人都经常清理内存(如使用360手机卫士等软件的一键关闭进程),一旦应用被清理就必须再次打开才能收到朋友的消息。...被安全卫士关闭自的应用 随着手机系统的快速更新,大部分Android手机用户都摒弃了较低的系统版本,目前,Android系统4.0以上的用户数占比已经高于95%,手机上安装有安全管家应用的用户数超过4.5...Android系统分布 对于各类手机助手,相信无论是软件开发者还是普通用户都和我一样是又爱又恨。通过试用,发现个推的SDK能在进程关闭的情况下进行服务的实时推送。...普通的推送技术采用的是每个应用单独一个通道,一旦进程被杀死,应用就会和服务器失去连接。通道被单方面关闭了,只有当用户再起开启时,关闭的门才能被打开。...通过SDK内部进程间的通信机制,被关闭的部分可以重新打开,实现了应用相互带动的良好关系,的应用也是通过这个方式得到了同学们又一次的关注。 具体过程相信大家看了下面的图就会明白: ?

1.5K100

带你了解LiveData重放污染的前世今生

例如,"始终保持最新数据"这个特性就不能被禁用,而本文想要解决的主要问题就是如何禁用它。 然而,必须感谢谷歌提供的 "适当的配置变更 "属性,它是如此的有用。...但我们仍然需要能够在我们想要的时候禁用它没有需要禁用它的场景,但可以让人们选择。...Jose的解决方案缺乏对多个观察者的支持,而这正是LiveData "共享资源 "为名的承诺之一。 它不是线程安全的。 还可以补充一个问题。...通过使用LiveData,我们希望在代码中使用函数式编程的优势,而函数式编程的原则之一是使用不可变的数据结构。这个原则将被Jose推荐的解决方案所打破。...如果有任何其他问题,你可以直接提出拉动请求,说明错了,错在哪里。另外,你可以通过Maven导入库,而不是复制/粘贴LiveEvent类,这样,一旦库的版本更新,任何错误修复都会出现在你的项目中。

1.2K10

Toast与Snackbar的那点事

通过以上分析,Toast的展示是由NMS服务控制的,NMS服务会做一些权限、token等的校验,当通知权限一旦关闭,Toast将不再弹出。...作为平台型App,美团App大量使用了Toast,人工替换肯定会出现遗漏的地方,为了能用更少的人力来解决这个问题,我们采用了如下方案。...> 解决方案 美团App在早期就因业务需要接入了AspectJ,AspectJ是Java中做AOP编程的利器,基本原理就是在代码编译期对切面的代码进行修改,插入我们预先写好的逻辑或者直接替换当前方法的实现...而底层已经被无感知的替换成自己的MToast了,最小的成本达到了目标。...斗争总结 我们的核心目标只是希望在用户关闭通知消息开关的情况下,能继续看到通知,所以我们使用了WindowManager添加自定义window的方式来替换Toast,但是在替换的过程中遇到了一些Toast

2.4K60

Linux之父再次炮轰C++是一门很烂的语言

还说很多不合格的程序员都在使用它。甚至说“要把喜欢用C++的程序员都踢出去,免得他们来搞乱的项目”,“C++最后做出来的就是一堆可怕,难以维护的垃圾”。 从此Linus是和C++彻底刚上了。...编程系统里面直接用C就可以,而非系统编程里,最好选择一种有垃圾收集的语言,但C++的特性出了捣乱,基本没有用。...但是知道有的开发者认为应该用C++而不是Rust的时候,Linus再次爆发。 大笑并嘲讽:“C++真是一门很烂的语言”。...引战贴源于: image.png 当代码调用不安全函数的时候,Rust的内存安全就不能保障了,而且目前几乎所有内核API都在其中。不过你也可以轻松的使用C++进行此类手动标记。...当然,C++ 也适用于其他操作系统,比如 Windows、Mac OS,甚至Android。所以这都取决于不同的项目。 在编程论坛还有一个有意思的帖子,一个大学生标识。

1.1K00

【译】LiveData三连

为了更好地理解何时使用这个新的可观察的数据持有者以及使用它的优势,在这篇文章的其余部分,将回顾一些替代方案,面对根据数据变化更新UI这一基本任务。...一旦ProfileController得到数据并准备好更新用户界面,它就会回调传入的监听器(实际上是Activity)并调用它的一个方法。...作为一个经验法则,建议在几乎所有考虑过(或已经使用过)其他替代方案的情况下都使用(或切换到)LiveData,特别是在我们希望干净、稳健和合理的方式根据数据变化更新用户界面的所有场景中。...两年多前,为了改善我们开发应用程序的方式,架构组件被引入到Android世界。...When NOT to Use LiveData 如果你熟悉Android开发,毫不怀疑你已经听说过架构组件,甚至可能在你的项目中使用了它们。

1.7K20

hello Kotlin

哈哈,实际上你完全可以不用这么痛苦,用 Kotlin 替代 Java 开发你的程序,无论是 Android 还是 Server,你都能像之前写 Java 一样思考,同时又能享受到新一代编程语言的特性,说到这里你是不是开始心动了呢...反正是受够了。 3.2 空安全与属性代理 第一次见到空类型安全的设计是在 Swift 当中,那时候还觉得这个东西有点儿意思哈,一旦要求变量不能为空以后,因它而导致的空指针异常的可能性就直接没有了。...有了这个方法,你可以在任何类的方法体中直接写: debug(whatever) 然后就会输出这个类名为 TAG 的日志。...用了这么久 Java,这简直是唯一强烈感到不满的地方了,甚至于我突然明白了 C++ 的 friend 是多么的有用。...就个人而言,长期下去,Kotlin 很大可能会成为的主要语言,短期内则仍然采用温和的改革方式慢慢将Kotlin 渗透进来。

91550

Android开发必备知识:为什么说Kotlin值得一试

哈哈,实际上你完全可以不用这么痛苦,用 Kotlin 替代 Java 开发你的程序,无论是 Android 还是 Server,你都能像之前写 Java 一样思考,同时又能享受到新一代编程语言的特性,说到这里你是不是开始心动了呢...反正是受够了。 3.2 空安全与属性代理 第一次见到空类型安全的设计是在 Swift 当中,那时候还觉得这个东西有点儿意思哈,一旦要求变量不能为空以后,因它而导致的空指针异常的可能性就直接没有了。...有了这个方法,你可以在任何类的方法体中直接写: debug(whatever) 然后就会输出这个类名为 TAG 的日志。...用了这么久 Java,这简直是唯一强烈感到不满的地方了,甚至于我突然明白了 C++ 的 friend 是多么的有用。...就个人而言,长期下去,Kotlin 很大可能会成为的主要语言,短期内则仍然采用温和的改革方式慢慢将Kotlin 渗透进来。

1.1K90

Flutter尝鲜:跨平台移动应用开发

Flutter编程语言 Flutter使用的编程语言是Dart,Dart是一门动态语言,几年前扬言要替换JavaScript地位,结果可想而知。 想必还是很多人都没听说过这门语言吧,原谅也没听过。...没想到如今Dart这样的形式再次出现在开发者面前。 Dart虽然是一门动态语言,但是像极了Java,作为一名Android开发者,几乎可以无缝切换,跟Kotlin也有几分相似。...直接用的Android Studio。 开始之前,你需要安装两个插件: Flutter插件: 支持Flutter开发工作流 (运行、调试、热重载等)....Flutter页面架构 App开发最重要的就是UI框架,Flutter重新定制一套自己的UI框架,在底层使用了Skia进行渲染。...,就不能在更改,一般用于显示静态页面。

3.4K71

C++并发 - 线程管理

线程管理   多线程编程是开发中经常用的技术,多数情况下,我们只是知道怎么线程、回收线程以及常规的一些用法,对于其具体技术细节以及还有哪些巧妙的用法并未挖掘。  ...并发编程的方法   计算机领域的并发指的是在单个系统里同时执行多个独立的任务, 而非顺序的进行一些活动。通常并发方式有两种: 多进程和多线程。...「多进程并发」   将场景任务两个或以上进程实现,这些独立的进程相互通信,共同完成任务,称之为多进程并发。  ...这意味着, 只能对一个线程使用一次 join() 一旦已经使用过 join(), std::thread 对象就不能再次加入了, 当对其使用joinable()时, 将返回否 (false) std::...转移所有权,理解的是在局部函数或特定阶段,能够随意控制指定线程而不受外部影响,另外也会减少资源开销。

62920

LiveData的前世今生

例如,"始终保持最新数据"这个特性就不能被禁用,而本文想要解决的主要问题就是如何禁用它。 然而,必须感谢谷歌提供的 "适当的配置变更 "属性,它是如此的有用。...但我们仍然需要能够在我们想要的时候禁用它没有需要禁用它的场景,但可以让人们选择。...Jose的解决方案缺乏对多个观察者的支持,而这正是LiveData "共享资源 "为名的承诺之一。 它不是线程安全的。 还可以补充一个问题。...通过使用LiveData,我们希望在代码中使用函数式编程的优势,而函数式编程的原则之一是使用不可变的数据结构。这个原则将被Jose推荐的解决方案所打破。...让纠正一下的解决方案。

1.1K10

Android O:使用自定义字体资源

前言 Android O中的新功能之一是使用自定义字体资源。在这篇文章中,我们一起来看看如何在我们的应用程序中使用它们。 在Android O之前,在我们的应用中使用自定义字体有多困难?...一旦您放入fonts文件夹中的自定义字体文件,就可以预览字体。只需双击一个字体,Android Studio会预览字体。 ? 字体预览.png 转到您的XML布局文件。...android:fontFamily="@font/merriweather_regular" 通过Java自定义字体 您可以通过编程方式分配字体。先取字体字体。然后把它设置为你的TextView。...那么它也是您的首要任务,确保内容易于阅读。...使用自定义字体资源只是Android O中的新功能之一。您可以在这里阅读其他Android O功能。 快乐工作,享受编程

2.4K30

Compose Preview 的 UX 设计之旅

然而,这种新的构建 UI 方式也带来了新的设计挑战。 对于经典的 Android 视图,UI 是静态的,且主要是通过 XML 进行创建。...设计研讨会还鼓励我们更多地代码为中心构建出 REPL 的编程环境,使得开发者在预览代码时拥有更多的控制权和灵活性 — 这样在本质上就提供了一个支持迭代、实验和学习的交互式编程环境。...我们邀请了开发者来加入我们的 Coding Session,在一个研究为目的而创建的 Compose 项目中完成一些简单的编程练习。..."当我发现在 Interactive 模式下长按可以显示星星的动画时,非常的开心。但是,之后的长按操作就不管用了 — 动画再也不出现了。...有趣的是,在创建新的 UI 并查看它们的渲染方式时,大部分时间都不需要使用它。"

84830

Kotlin 和 Checked ExceptionKotlin 和 Checked Exception

译文:Google 的 Java 为核心的 Android 移动开发平台,加入了 Kotlin 作为官方支持的开发语言。它会被包含到 Android Studio 3.0 IDE 里面。...前段时间这些小编们也有类似的谣传,说斯坦福大学把入门编程课的语言“换成了 JavaScript”,而其实别人只是另外“增加”了一门课,使用 JavaScript 作为主要编程语言,原来 Java 为主的入门课并没有被去掉...现在它忽然火了起来,再次浏览它的新版文档,却发现自己还是会继续使用 Java 或者 C++。...CE 只提供了一种机制,至于程序员怎么使用它,是他们自己的职责。再好的特性被滥用,也会产生糟糕的结果。Hejlsberg 对这些问题使用了站不住脚的理论。...实际上不管我用什么语言写代码,的头脑里都在用同一个语言构造程序。写代码的过程,只不过是在为脑子里的“万能语言”找到对应的表达方式而已。

70920

Android通知栏微技巧,8.0系统中通知栏的适配

个人虽然是Android应用开发者,但同时也是Android手机的资深用户。已经使用了8年的Android手机,目前对于通知栏的这种垃圾推送是零容忍的。...对于每个App来说,通知渠道的划分是非常需要仔细考究的,因为通知渠道一旦创建之后就不能再修改了,因此开发者需要仔细分析自己的App一共有哪些类型的通知,然后再去创建相应的通知渠道。...比方说这是一条比较重要的通知,但是暂时没时间看,也不想让它一直显示在状态栏里打扰就可以让它延迟一段后时间再显示,这样就暂时能够先将精力放在专注的事情上,等过会有时间了这条通知会再次显示出来,不会错过任何信息...管理通知渠道 在前面的内容中我们已经了解到,通知渠道一旦创建之后就不能再通过代码修改了。既然不能修改的话那还怎么管理呢?...可能有些朋友习惯了iOS上的那种未读角标,觉得Android上这种还要长按的方式很麻烦。

2.8K40

Android,开源还是封闭?

) 其次,Google对Android用了一种全面霸权式的管理,完全不是其他开源软件的开发方式,一切都由Google说了算,很多地方是黑箱,外界不得而知。"...Android 的重点就是商业应用,Google采用了一些手法来绕过这问题。...这样做或许有利于推广Android,吸引厂商和软件开发商的加入,但是Google也放弃了构建一个真正开源的手机系统的机会,从而也就不能获得由全世界程序员提供智慧、分享代码、推动创新的好处。...但是Android不一样,你不能假装成开源系统,骗取社区的支持,然后又干着封闭系统的勾当。你的实力,不用Linux Kernel,自己开发一个Google Kernel,想必也不是难事。...私底下已经说过,愿意帮助完成这项工作,在这里再次公开这样说。但是如果没有Google程序员的加入,什么也不会发生。" Android必须变成一个真正的开源系统。

66570

学习Android之前,如何学习Java

Java目前是世界用的最广泛的编程语言。在Android开发中,Java编程语言是开发Android应用程序的基础,你对Java越掌握,在开发Android中会越得心应手。...但是,这里我们抛开JavaWeb不讲,一个Android零基础的初学者角度,探讨怎样快速入门成为Android入门开发者,并有能力编写自定义的Android APP。...Android最新的官方语言是Kotlin,也许你会问为什么不谈学习Kotlin,是因为Kotlin是基于Java的,相信你掌握Java之后Kotlin也不在话下。...(1)看一套视频(选择自己习惯的方式,或者一本Java基础书):Java基础并不难,如果你学过编程,会很快就掌握Java基础,如果完全没有接触过编程,你就需要一个知识一个知识的搞定它,以下是Java的学习目录...忘记了没关系,但一定要知道有那一会事,如果让你再次回看原来的知识你至少应该马上就想起来。

34130
领券