如何使用fab在中心进行bottomnavigationview并在滚动时隐藏整个视图

问题描述 投票:0回答:1

我正在开发一个带有bottomnavigationview的应用程序与fab在中心。我需要隐藏整个视图(bottomview + fab)当我像swiggy app滚动时。我已经附加了我的布局图片和xml file.i实现了布局,但是底部导航当我滚动时,工厂不会隐藏.Nowi需要隐藏底部导航和工厂在滚动时隐藏。

 <?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/rootLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:overScrollMode="always"
    android:scrollbarAlwaysDrawVerticalTrack="true"
    tools:context=".DeliveryManLandingScreen">




    <RelativeLayout
        android:id="@+id/rel_lay"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <FrameLayout
            android:id="@+id/fragment_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/rel_view">

        </FrameLayout>


        <View
            android:id="@+id/rel_view"
            android:layout_width="match_parent"
            android:layout_height="3dp"
            android:layout_above="@+id/mainFrame"

            android:layout_alignTop="@+id/mainFrame"
            android:layout_marginBottom="3dp"
            android:background="@color/colorPrimary" />

        <android.support.design.widget.CoordinatorLayout
            android:id="@+id/mainFrame"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginTop="2dp"
            app:layout_behavior="@string/appbar_scrolling_view_behavior">


            <android.support.design.widget.BottomNavigationView
                android:id="@+id/itemBottomList"
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:background="@color/textColor"
                android:overScrollMode="always"
                app:elevation="8dp"
                app:itemHorizontalTranslationEnabled="true"
                app:itemIconTint="@drawable/activity_delivery_bg"
                app:itemTextColor="@drawable/activity_delivery_bg"
                app:labelVisibilityMode="labeled"
                app:layout_behavior="android.com.foodorderapplication.BottomNavigationBehavior"
                app:menu="@menu/bottom_items_navigator" />

        </android.support.design.widget.CoordinatorLayout>

        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerInParent="true"

            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_gravity="fill_vertical"
            android:layout_marginBottom="29dp"
            android:background="@color/textColor"
            android:backgroundTint="#f5fffa"
            android:clickable="true"
            android:focusable="true"
            android:scaleType="centerCrop"
            app:borderWidth="1dp"
            app:elevation="4dp"
            app:fabSize="normal"
            app:rippleColor="#f5fffa"
            app:srcCompat="@drawable/offers" />

    </RelativeLayout>


</android.support.design.widget.CoordinatorLayout>

My current layout

android floating-action-button bottomnavigationview
1个回答
0
投票

如果您使用RecyclerView进行滚动,可以尝试以下代码:

   recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
                switch (newState) {
                    // you are scrolling now 
                    case RecyclerView.SCROLL_STATE_DRAGGING:
                        // here your *view* should be the parent of bottom navigation and fab 
                        TransitionManager.beginDelayedTransition(view);
                        // hide view
                        view.setVisibility(View.GONE);
                        break;
                }
            }
    });

TransitionManager将帮助您完成基本的过渡动画。请注意,在停止滚动时必须调用view.setVisibility(View.VISIBLE),以便再次显示底部导航

© www.soinside.com 2019 - 2024. All rights reserved.