当前位置:  开发笔记 > 编程语言 > 正文

Android设计库25.1.0导致FloatingActionButton.Behavior停止工作

如何解决《Android设计库25.1.0导致FloatingActionButton.Behavior停止工作》经验,为你挑选了2个好方法。

我已经使用这个FloatingActionButton.Behavior好几个月了,它负责隐藏和显示我的应用程序的FAB.从未遇到过问题.

public class ScrollAwareFABBehavior extends FloatingActionButton.Behavior {
public ScrollAwareFABBehavior(Context context, AttributeSet attrs) {
    super();
}

@Override
public boolean onStartNestedScroll(final CoordinatorLayout coordinatorLayout, final FloatingActionButton child,
                                   final View directTargetChild, final View target, final int nestedScrollAxes) {
    // Ensure we react to vertical scrolling
    return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL
            || super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target, nestedScrollAxes);
}

@Override
public void onNestedScroll(final CoordinatorLayout coordinatorLayout, final FloatingActionButton child,
                           final View target, final int dxConsumed, final int dyConsumed,
                           final int dxUnconsumed, final int dyUnconsumed) {
    super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed);
    if (dyConsumed > 0 && child.getVisibility() == View.VISIBLE) {
        // User scrolled down and the FAB is currently visible -> hide the FAB
        child.hide();
    } else if (dyConsumed < 0 && child.getVisibility() != View.VISIBLE) {
        // User scrolled up and the FAB is currently not visible -> show the FAB
        child.show();
    }
}}

一旦我更新到支持库

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

FloatingActionButton.Behavior停止正常工作.它隐藏了FAB一次然后它再也没有被调用过.不是onStartNestedScroll或onNestedScroll方法.

有谁知道这里发生了什么.我的其余代码保持不变,我只更新这个库,它像以前一样停止工作.



1> woxingxiao..:

对于25.1.0,CoordinatorLayout正在跳过GONE在查找其onNestedScroll方法中要调用的行为时设置的视图.
该解决方案将取代FAB的知名度GONEINVISIBLE.
简单地说,改变:

child.hide();  

至:

child.hide(new FloatingActionButton.OnVisibilityChangedListener() {
        @Override
        public void onHidden(FloatingActionButton fab) {
            super.onHidden(fab);
            fab.setVisibility(View.INVISIBLE);
        }
    });



2> 小智..:

我有完全相同的问题,看起来'支持设计包'中有一个错误.我相信,我们现在唯一可以做的就是回滚到以前的版本之一.我决定使用以下内容:

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

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有