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里面融云的包没删不用管
网友评论