Android使用CoordinatorLayout实现折叠并实现导航吸附

先看下效果:


1.分析下页面构成

将页面分为三个部分

Android使用CoordinatorLayout实现折叠并实现导航吸附_第1张图片

2.接下来分析下页面构成

1.为折叠区域

2.为吸附区域

3.为列表区域

3.看下XML代码构成

xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white">

            android:id="@+id/cl"
        android:layout_width="match_parent"
        android:layout_height="350dp"
        android:background="@android:color/white"
        android:fitsSystemWindows="true"
        android:orientation="vertical"
        app:layout_behavior="com.example.zjlmdemo.TestBehavior">

                    android:id="@+id/ctl_layout"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_gravity="end|bottom"
            android:layout_weight="1"
            app:layout_scrollFlags="scroll|enterAlwaysCollapsed">

                            android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@mipmap/welcome"
                app:layout_collapseMode="parallax" />

        

                    android:id="@+id/tab1"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_margin="10dp"
            android:background="@android:color/white"
            android:orientation="horizontal">

                            android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:background="@mipmap/search" />

                            android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_marginLeft="10dp"
                android:layout_weight="1"
                android:text="请输入商品或店铺"
                android:textColor="@android:color/darker_gray" />

                            android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@android:color/holo_orange_light"
                android:padding="10dp"
                android:text="搜索"
                android:textColor="@android:color/white"
                android:textSize="11dp" />
        

                    android:id="@+id/tab3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            

4.设置滑动切换样式

//设置上滑切换搜索框样式
cl.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
    @Override
    public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
        if (verticalOffset + cl.getTotalScrollRange() != 0) {//判断滑动距离如果滑动距离=AppBarLayout的距离切换样式
            tab1.setVisibility(View.VISIBLE);
            tab3.setVisibility(View.VISIBLE);
            tab2.setVisibility(View.GONE);
            tab4.setVisibility(View.GONE);
        } else {
            tab1.setVisibility(View.GONE);
            tab2.setVisibility(View.VISIBLE);
            tab3.setVisibility(View.GONE);
            tab4.setVisibility(View.VISIBLE);
        }
    }
});
只是提供一个思路


你可能感兴趣的:(Design)