仿JD浏览商品,实现头部导航上滑隐藏,导航悬浮,下滑头部显示
android5.0新特性,需要用到
android.support.design.widget.CoordinatorLayout
android.support.design.widget.AppBarLayout
使用CoordinatorLayout需要在Gradle加入Support Design Library:
compile 'com.android.support:design:22.2.1'
需要隐藏的布局中设置属性
app:layout_scrollFlags="scroll|enterAlways"
需要滑动的view中设置属性.
app:layout_behavior="@string/appbar_scrolling_view_behavior"
Scroll 表示向下滚动时,这个View会被滚出屏幕范围直到隐藏.
enterAlways 表示向上滚动时,这个View会随着滚动手势出现,直到恢复原来的位置.
在可以滚动的View上设置属性 app:layout_behavior.该属性的值实际上是一个完整的class名字,而上面例子中的 @string/appbar_scrolling_view_behavior 是Android Support Library 定义后的值,可以被直接使用.
这个Behavior的class是真正控制滚动时候View的滚动行为.我们也可以继承Behavior这个class去实现特有的滚动行为.
下面是xml文件完整代码,我的viewpager中包含listview控件。所以在这里设置。
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context="accuounting.mmb.com.mmb.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimaryDark"
app:title="MMB记账"
android:theme="@style/ThemeOverlay.AppCompat.Dark"
android:popupTheme="@style/ThemeOverlay.AppCompat.Dark"
app:layout_scrollFlags="scroll|enterAlways"
/>
<android.support.design.widget.TabLayout
android:id="@+id/actTabLayout"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/colorPrimaryDark"
app:tabGravity="fill"
app:tabSelectedTextColor="#ff0"
app:tabTextColor="#ffffff"
app:tabIndicatorColor="#00DB00"
/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/actMainVp"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
>
</android.support.v4.view.ViewPager>
</android.support.design.widget.CoordinatorLayout>
注意以上三点就可以了。不懂的可以自己搜一下,网上都有详细的介绍。下面看效果
这里做下说明:如果朋友们用ListView或者Scrllview肯定会发现效果没有实现。所以要换成
android.support.v4.widget.NestedScrollView
或者引用Recyclerview
compile 'com.android.support:recyclerview-v7:22.1.1'
下面是下载链接。注意,自己新建工程,导入到对应的目录下即可。
下载链接(提取码:186e)