android布局滑动到顶端悬浮,吸顶

2018-10-29  本文已影响193人  Android丶boy

ok 首先我们来看看是不是咱们想要的效果!免得浪费大家时间

效果图.gif

这里采用CoordinatorLayout+AppBarLayout配合使用

再来看一下布局结构


布局结构.jpg
现在要使用的话则Copy一下代码稍作修改即可
<android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/appbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/color_two">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                boy:layout_scrollFlags="scroll|exitUntilCollapsed"
                android:orientation="vertical">


                <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/dp_200"
                    android:src="@mipmap/testimage" />

                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@mipmap/ic_launcher" />

            </LinearLayout>

            <LinearLayout
                android:id="@+id/ll_topview"
                android:layout_width="match_parent"
                android:layout_height="116dp"
                android:gravity="right"
                android:background="@color/color_three"
                android:orientation="vertical">

                <View
                    android:layout_width="match_parent"
                    android:background="@color/color_two"
                    android:layout_height="66dp"/>

                <Button
                    android:id="@+id/btn_screen"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:text="筛选" />

            </LinearLayout>

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

        <android.support.v7.widget.RecyclerView
            android:id="@+id/reclerview"
            android:layout_width="match_parent"
            boy:layout_behavior="@string/appbar_scrolling_view_behavior"
            boy:layout_scrollFlags="scroll"
            android:layout_height="match_parent">
        </android.support.v7.widget.RecyclerView>

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

这里需要注意一点的是

1.design这个包版本需要在26以上,不然有点卡顿,加速度有点问题

2.如果我们悬浮模块以上的这部分布局很长,超过了一屏,那么我们需要给AppBar加一个判断,如下

private int mI;

appbar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
            @Override
            public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
                //为0时表示AppBarLayout完全显示
                mI = verticalOffset;
                refreshLayout.setEnableRefresh(mI >= 0);
            }
        });
//外层我是用的一个刷新控件 SmartRefreshLayout
//https://github.com/scwang90/SmartRefreshLayout/blob/master/art/md_property.md

好了这样就大功告成了,这次是不是清楚了

回手掏 鬼刀一开看不见 走位走位 哈哈 老铁心心来一个

demo下载链接:点击这里就ok,ps里面融云的包没删不用管

上一篇下一篇

猜你喜欢

热点阅读