开始工作了,第一个项目是一个商城app,分享一下京东商城滑动标题栏渐变,下拉刷新隐藏标题栏的效果。先看看再说
1.先看一下布局文件,是一个刷新控件嵌套一个RecyclerView,head_searche是搜索栏,也就是toolbar了。
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.muzi.homepage.SuperSwipeRefreshLayout android:id="@+id/superlayout" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" /> </com.muzi.homepage.SuperSwipeRefreshLayout> <include layout="@layout/head_searche" /></RelativeLayout>2.然后是渐变效果。实例化RecyclerView,重写滑动监听,mDistance是int类型,表示滑动距离。通过判断滑动距离,来改变所搜栏的Alpha值。自己看代码recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { //滑动的距离 mDistanceY += dy; //toolbar的高度 int toolbarHeight = head_search_rr.getBottom(); //当滑动的距离 <= toolbar高度的时候,改变Toolbar背景色的透明度,达到渐变的效果 if (mDistanceY <= toolbarHeight) { float scale = (float) mDistanceY / toolbarHeight; float alpha = scale * 255; head_search_rr.setBackgroundColor(Color.argb((int) alpha, 255, 255, 255)); } else { //将标题栏的颜色设置为完全不透明状态 head_search_rr.setBackgroundResource(R.color.white); } } });3.刷新隐藏搜索栏,SuperSwipeRefreshLayout的下拉刷新监听,当滑动的时候设置搜索栏的Visibility为GONE就行了 /** * 下拉刷新 */ refreshLayout.setOnPullRefreshListener(new SuperSwipeRefreshLayout.OnPullRefreshListener() { @Override public void onRefresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { refreshLayout.setRefreshing(false); } }, 500); } @Override public void onPullDistance(int distance) { if (distance > 0) { head_search_rr.setVisibility(View.GONE); } else { head_search_rr.setVisibility(View.VISIBLE); } } @Override public void onPullEnable(boolean enable) { } });
新闻热点
疑难解答