当前位置: 首页 > 知识库问答 >
问题:

如何删除appbar上的弹跳效果?

柳胜
2023-03-14

Appbar过去在投掷时有一个问题。它滚动不流畅。

请参阅以下文件

  • http://stackoverflow.com/questions/30923889/flinging-with-recyclerview-appbarlayout
  • https://code.google.com/p/android/issues/detail?id=177729

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

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

然而,appbar现在正在反弹,即使投掷并不困难。

如何删除此行为?

共有1个答案

帅银龙
2023-03-14

只有当AppBar被滚动/抛出,而NestedScrollView(或RecyclerView)尚未完成抛出时,才会发生这种情况。

解决方案:扩展AppBar的默认行为,并阻止对AppBar的调用。当在嵌套滚动尚未停止的情况下触摸AppBar时,行为的onNestedScroll()onNestedScroll()

 @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

 类似资料:
  • 我需要隐藏或删除后退按钮或后退图标从AppBar是可能的吗? 如果可能,那么如何? 我设置了,但它仍然存在,没有任何变化

  • 我想知道,当您使用转到另一个页面时,是否有人知道如何删除flutter应用程序中上显示的后退按钮。我不希望它出现在这个结果页面上的原因是它来自导航,我希望用户使用按钮,以便会话重新开始。

  • 问题内容: 我正在尝试制作一个与内存匹配的游戏,当单击它时,我将其图标图像放置在JButton上。我的问题是,有没有办法从JButton移除Icon?我想这样做是在用户单击时显示图像,并且如果用户单击的第二个按钮与第一个按钮没有相同的图像,那么它就会消失…有什么想法吗? 问题答案: 简单,将图标设置为。它没有图标,因此将其删除。

  • 问题内容: 我有以下代码将ActionListener添加到JTextField中: 现在,由于该函数需要一个参数,如何使用删除此MouseListener ? 问题答案: 您可以考虑3种方法: 1)在添加引用之前,请先保存对监听器的引用,以便以后删除它: 2)您可以使用相应的方法获取所有某些事件侦听器,例如: 要么 这是第一种和第二种方法的javadocs 。如果您可以在所有侦听器中确定要删除的

  • 我正在使用Firebase作为web应用程序。它是用纯Javascript编写的,不使用外部库。 我可以“推送”并使用“.on(”child_added“)”检索数据,但是“.remove()”不能按照它所说的方式工作。根据 API, “Firebase.remove()-删除此Firebase位置的数据。子位置的任何数据也将被删除。删除的效果将立即可见。” 然而,移除不是立即发生的;只有在整个脚

  • 我目前正在研究这个导航菜单的样式 它在浏览器上运行良好。至于手机,有一种奇怪的蓝色onclick效应。我怎样才能删除它 屏幕截图: 单击前https://imgur.com/Ovu5v7P 点击https://imgur.com/lOwpicT 这是我的密码: