如何消除应用栏上的弹跳效果?

2023-12-01

应用栏过去在滑动时会出现问题。它滚动得不顺畅。

请参考这些:

  • http://stackoverflow.com/questions/30923889/flinging-with-recyclerview-appbarlayout
  • https://github.com/henrytao-me/smooth-app-bar-layout

但在支持库版本26中已修复。

compile 'com.android.support:design:26.0.0'

然而,即使 fling 并不困难,appbar 现在也能恢复了。

enter image description here

我该如何消除这种行为?


这仅发生在AppBar滚动/抛出时NestedScrollView(or RecyclerView)还没有完成投掷。

解决方案:扩展AppBar的默认值Behavior并阻止对 AppBar.Behavior 的调用onNestedPreScroll() and onNestedScroll() when AppBar在 NestedScroll 尚未停止时被触摸。

 @Override
public void onNestedPreScroll(CoordinatorLayout coordinatorLayout, AppBarLayout child, View target, int dx, int dy, int[] consumed, int type) {
    if (type == TYPE_FLING) {
        isFlinging = true;
    }
    if (!shouldBlockNestedScroll) {
        super.onNestedPreScroll(coordinatorLayout, child, target, dx, dy, consumed, type);
    }
}

@Override
public void onNestedScroll(CoordinatorLayout coordinatorLayout, AppBarLayout child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int type) {
    if (!shouldBlockNestedScroll) {
        super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed, type);
    }
}

然后在布局上使用它:

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar"
    ...
    app:layout_behavior="com.mypackage.NoBounceBehavior"/>

参考自定义行为的完整代码可以在这里找到:https://gist.github.com/ampatron/9d56ea401094f67196f407f82f14551a

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何消除应用栏上的弹跳效果? 的相关文章

  • 更改首选项的背景颜色

    我有一个PreferenceCategory xml 文件 我已经在其中定义了所有首选项 我从扩展的类中调用它PreferenceActivity 我无法设置设置屏幕的背景 该屏幕是在如下所示的 xml 文件的帮助下显示的 请看我已经定义了
  • 如何检测android中的颠倒方向?

    在我的 Android 应用程序中 我有全景图像 并且我使用 TYPE ORIENTATION 传感器根据手机运动旋转该图像 它对于横向和纵向都工作良好 这是旋转逻辑的代码 Override public void onSensorChan
  • 服务在后台运行?

    我正在构建的应用程序的功能之一是记录功能 我通过在服务中启动 MediaRecorder 对象来实现此目的 Intent intent new Intent v getContext RecordService class Messenge
  • PhoneGap 是应用程序开发的好选择吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 从Asynctask返回结果

    如果我的 Android 应用程序中有这个后台工作文件 并且它从我的数据库获取数据 我如何将字符串 结果 传递给另一个类 后台工作人员连接到我的服务器 然后使用 php 连接到数据库 public class BackgroundWorke
  • 在 Android 中关闭 Spinner 中的下拉菜单

    在 Android 中打开和关闭微调器时 我需要为箭头图标设置动画 打开微调器时我可以旋转箭头 我只是放了一个setOnTouchListener on the Spinner 当下拉菜单关闭或隐藏时 问题就来了 因为我不知道如何在该操作上
  • 使用 POST 将数据从 Android 发送到 AppEngine Datastore

    抱歉 如果这是一个简单的问题 但我只是不知道我应该做什么 而且我认为我有点超出了我的深度 我想将数据从 Android 应用程序发送到在 Google App Engine 上运行的应用程序 数据必须从那里写入数据存储区 我的数据主要采用对
  • 用于代码生成的 ANTLR 工具版本 4.7.1 与当前运行时版本 4.5.3 不匹配

    我正在开发一个 Android 应用程序 当前使用 DSL 和一些库 突然构建给了我这个错误 任务 app kaptDebugKotlin 失败 用于代码生成的 ANTLR 工具版本 4 7 1 与当前运行时版本 4 5 3 不匹配 用于解
  • NullPointerException org.chromium.android_webview.AwContents$AwViewMethodsImpl.onDragEvent

    大约 10 天前 我的应用程序开始记录此异常 在开发控制台上看到 java lang NullPointerException at org chromium android webview AwContents AwViewMethods
  • 如何在Firebase Android应用程序中分离两个不同的用户?

    我有一个应用程序 有两种不同类型的用户 一种是教师 第二种是普通用户 如果普通会员登录 他会去normal memberActivity如果他是教师会员 他会去Teacher memberActivity 我如何在登录活动中执行此操作 我的
  • 如何知道点击的widget id?

    我已经实施了一个widget与ImageButton and a TextView That ImageButton启动一个activity当它被点击时 这activity使用用户在活动上写入的内容更新小部件文本EditText 现在的问题
  • 如何在不改变的情况下将字符串转换为字节?

    我需要一个解决方案将字符串转换为字节数组而不需要像这样进行更改 Input String s Test Output String s Test byte b Test 当我使用 s getBytes 那么回复是 B 428b76b8 但我
  • 将搜索结果更新为 Android 中的 Lazy Adapter

    我有项目列表 想为其实现搜索功能 因此 我有一个带有 addTextChangedListener 的文本框 搜索结果运行良好 但当我尝试将结果设置为 ListView 时 新结果将附加到旧结果中 我正在使用惰性适配器 如何清除适配器中的旧
  • Android框架结构与MFC/Win32结构的比较?

    我为 Android 和 Windows 进行开发 使用 MFC 有时使用 win32 昨天我随意比较了这两个框架 它们显然非常非常不同 因此 Windows 开发与 Android 开发有很大不同 我想知道人们认为 Android 这样的
  • 如何在Android中隐藏应用程序标题? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想隐藏应用程序标题栏 您可以通过编程来完成 import android app Activity import android os
  • Android apk 调试模式工作正常,但发布模式给出太多警告

    我正在尝试从 eclipse 获取签名的 APK 我有一个可调试的 apk 版本 运行良好 现在发布时 当我尝试使用 Eclipse ADT 进行编译和签名时 我收到很多警告 其中大部分是can t find superclass or i
  • 在 Android SDK 中通过单击按钮更改背景颜色不起作用

    我有一个简单的程序 可以在单击按钮后更改背景颜色 但它不起作用 public class ChangeBackgroundActivity extends Activity Called when the activity is first
  • 如何用 XML 制作双渐变(类似 iphone)

    如何使用 XML 制作这种可绘制渐变 我可以做一个从颜色 A 到颜色 B 的简单渐变 但我不知道如何在同一个可绘制对象中组合两个渐变 我终于找到了一个带有图层列表的解决方案 这对我来说已经足够好了
  • Android 中带有无尽列表视图滚动的 AsyncTask

    我正在创建一个应用程序 其中我需要有无限的滚动列表视图 我不想在我的应用程序中使用任何库 我在网上看到了一些有助于实现此类列表视图的示例 但我的疑问是 当我的数据来自服务器并在异步任务中进行解析时 如何才能拥有无尽的列表视图 如何从滚动异步
  • 将 firebase 消息传递添加到 flutter android 项目时出现依赖错误

    我已将 firebase 消息传递添加到我的 Flutter 项目中 在 iOS 上运行良好 在 Android 上运行时出现错误 Android dependency androidx localbroadcastmanager loca

随机推荐

  • 如何使用 WebDav 将 dav:href 与 Outolook Interop href 值匹配

    我以前曾使用 webdav 根据主题和时间访问 Exchange 2003 服务器上发送的消息 这很有效 我现在需要实现另一个功能 这意味着将消息从客户端 Outlook 不是 Web 访问 拖到 Windows 窗体上 然后在 Excha
  • 使用广播接收器更改日期时无法运行服务

    我创建了一个生日提醒应用程序 我想在晚上 12 00 开始服务来扫描数据库中人员的生日 我添加了一个广播接收器
  • iPad/iPhone 悬停问题导致用户双击链接

    我有一些我以前建立的网站 使用 jquery 鼠标事件 我刚买了一个 ipad 我注意到所有鼠标悬停事件都被转换为单击 所以例如我必须执行两次单击而不是一次单击 第一次悬停 而不是实际点击 有解决方法可以解决这个问题吗 也许我应该使用 jq
  • 为什么 OS X 上的 FF 在单击事件处理程序中丢失了 jQuery-UI?

    在使用 jQUery 1 7 1 和 jQUery UI 1 8 18 的网页中 如果我在文档准备好时在警报框中输出 ui 我会得到 object Object 但是 当使用 Firefox 时 如果我在单击事件处理程序中输出 ui 则会得
  • 重用 UITableView 中的单元格

    我有我的自定义单元 NewsCell 它包含我的自定义视图 ImageMosaicView 它只是 UIView 的子类 我用它来显示照片 就像 Facebook 上发布的照片 一样 我只是将图像的 url 传递给 ImageMosaicV
  • C++成员函数隐藏的原因[重复]

    这个问题在这里已经有答案了 可能的重复 名称隐藏和脆弱的基础问题 我熟悉涉及成员函数隐藏的规则 基本上 具有与基类函数同名的函数的派生类实际上不会重载基类函数 它完全隐藏了它 struct Base void foo int x const
  • 我如何用 throw e 在开玩笑行中进行测试?

    如何在玩笑错误情况下进行测试 这就是我所做的 我不知道是否存在一种方法来测试这个 it the fetch fails and throw an error async gt let response status 400 body bas
  • Javascript API 不适用于 JW Player 5.9 上的 Chrome 或 Safari

    我正在为 JW Player 开发一个自定义界面 它显示当前曲目标题并具有播放 暂停 下一曲目 上一曲目和音量切换按钮 它适用于 IE8 9 和 FF 但不适用于 Chrome 和 Safari Chrome 的控制台出现以下错误 未捕获的
  • 将输出写入不同的文件夹 hadoop

    我想将同一个减速器的两种不同类型的输出写入两个不同的目录 我可以使用 hadoop 中的多输出功能写入不同的文件 但它们都转到相同的输出文件夹 我想将同一个reduce 中的每个文件写入不同的文件夹 有办法做到这一点吗 如果我尝试将 hel
  • 为什么方法 Base64.encodeBase64String(byte) 不可用

    您好 我已将官方网页中的 apache commons codec 1 7 jar 添加到我的项目构建路径中 但该方法Base64 encodeBase64String byte当我编写代码时不可用 我已经用旧版本的 jar 1 5 1 6
  • 动态加载 php 扩展而不使用 dl() 函数?

    这可能吗 如果可能的话 该怎么做 我问是因为dl 我无法使用该函数 因为 PHP 团队正在从后续版本中放弃该函数 请不要回答 改用扩展加载指令 这正是我不明白的部分 我想 我要问 The 函数已从所有 SAPI 中删除other自 PHP
  • php 命令行性能缓慢 - 这是正常现象还是我有安装问题?

    我有一个简单的 PHP 应用程序 可以打印 hello world 当我从命令行运行它时 需要 6 秒 这是正常的吗 似乎需要 1 秒才能打印 hello world 然后又需要 5 秒 我在 Windows Server 2008 R2
  • 链接升压日志教程时出现链接器错误(未定义的引用)

    我已经通过 yum 在 Fedora 20 上安装了 boost 并且正在尝试一些简单的示例 但是我在编译第一个示例时遇到了麻烦日志记录教程 编译用g c boosttest cc工作正常 但是当我尝试将其链接到时出现很多错误 g boos
  • 在 HQL 上使用 select 进行内连接

    我想用 HQL 做类似的事情 SELECT FROM tableA a INNER JOIN select fieldA sum fieldB as sum from tableB b ON a fieldA b fieldA and a
  • 为什么 Class 变量没有更新其所有实例?

    我正在学习课程 但不明白这一点 class MyClass var 1 one MyClass two MyClass print one var two var out 1 1 one var 2 print one var two va
  • MultiView Android Delphi 与 TWebBrowser

    在包含 TWebBrowser 的区域中使用 MultiView 组件 该组件会覆盖 MultiView 有没有办法来解决这个问题 用法 德尔福XE8更新1 第一个测试中没有代码 所有配置均通过 MultiView 实现可视化 使用 TWe
  • UIView动画在动画过程中确定中心

    我正在使用 UIView 的 animateWithDuration delay options animations completion 方法在几秒钟左右的时间内沿着一条线移动我的视图 我想在该动画期间的任意时间确定 UIView 及其
  • 如何将数组从一个 Servlet 传递到另一个 Servlet?

    我想将多个值从一个 servlet 传递到另一个 servlet 请告诉我如何通过 You can 使用以下命令将数组作为属性放入请求上下文中request setAttribute 使用以下命令将请求转发到第二个 servletReque
  • 宏 ((void(*)())0)() 是什么意思?

    以下宏的结果很清楚 define CRASH do int uintptr t 0xbbadbeef 0 void 0 while false 我的问题是 这条线是什么 void 0 分解为 用英语 例如 这是一个返回指向 的指针的函数 看
  • 如何消除应用栏上的弹跳效果?

    应用栏过去在滑动时会出现问题 它滚动得不顺畅 请参考这些 http stackoverflow com questions 30923889 flinging with recyclerview appbarlayout https git