AppBarLayout的简单使用
AppBarLayout将应用中的Toolbar和TabLayout放在了一起
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
android:orientation="vertical"
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"
tools:context="com.javahe.tablayout_design_demo.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorAccent"
app:layout_scrollFlags="scroll|enterAlways|snap"
app:title="努力奋斗"></android.support.v7.widget.Toolbar>
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tab"
app:tabBackground="@color/colorAccent"
app:tabSelectedTextColor="#a228c7"
app:tabTextColor="#fff"
app:tabIndicatorColor="#45dd17"
app:tabIndicatorHeight="3dp"
>
</android.support.design.widget.TabLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent"
//关键是Layout_bahavior的声明
app:layout_behavior="@string/appbar_scrolling_view_behavior">
</android.support.v4.view.ViewPager>
</android.support.design.widget.CoordinatorLayout>
当AppBarLayout中,上面的元素不能滚动的时候,下面的元素依然也是不能滚动的。
能够实现相同效果的,还有RecyclerView和NestedScrollView
ScrollFlags还有两个属性 exitUtilsCollaped,EnterAlwaysCollapased
沉浸式状态栏
通过xml来实现
在最外层布局添加
android:fitsSystemWindows="true"
设置主题
<Item name="android:windowsDrawsSystemBarBackgrounds">true</Item>
<Item name="android:statusBarColor">@android:color/transparent</Item>
通过代码实现
getWindow().setStatusBarColor(Color.TRANSPARENT);
实现半透明状态栏的办法
getWindow.addFlag(WindowManager.LayoutParams.FLAG_TRANLUCENT_STAUS);
CollapsingAppBarLayout
<?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:fitsSystemWindows="true"
android:layout_height="match_parent"
tools:context="com.javahe.collapsingappbarlayout.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
// 覆盖内容的颜色
app:contentScrim="@color/colorPrimary">
<ImageView
android:layout_width="match_parent"
android:layout_height="200dp"
android:src="@drawable/cheese_1"
android:fitsSystemWindows="true"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
/>
<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:title="努力加油">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/app_name1"/>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>