1、TitleBar是标题栏
android:fitsSystemWindows="true"
android:layout_below="@+id/toolbar"
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar=getSupportActionBar;
actionBar.setTitle("父标题");//父标题
actionBar.setSubTitle("子标题");//子标题
actionBar.setLogo(android.drawable.ic_launcher);//设置图标
actionBar.setDisplayHomeAsUpEnabled(true); //设置返回箭头显示
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
finish();
}
});
默认的AppBarLayout是垂直方向的,它的作用是把AppBarLayout包裹的内容都作为AppBar。
此处将Toolbar 和Tablayout的组合部分共同构成 AppBar的效果。
注意: AppBarLayout必须作为Toolbar的父布局容器
AppBarLayout是支持手势滑动效果的,不过的跟CoordinatorLayout配合使用
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
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="?attr/colorPrimary"
android:minHeight="?attr/actionBarSize"></android.support.v7.widget.Toolbar>
?
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll"
app:tabIndicatorColor="@android:color/holo_red_dark"
app:tabSelectedTextColor="@android:color/holo_red_dark"
app:tabTextColor="@android:color/black" />
?
</android.support.design.widget.AppBarLayout>
setHasOptionsMenu(true);//使右上方菜单可显示要想清除菜单:
Menu menu = toolbar.getMenu(); menu.clear();同样,完全清除菜单,也需要在Fragment中添加:setHasOptionsMenu(true);
6、CoordinatorLayout:CoordinatorLayout是一个增强型的FrameLayout。它的作用有两个
(1)作为一个布局的根布局<?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"
android:id="@+id/main_content"
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.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:="scroll|enterAlways" />
?
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabGravity="fill" />
?
?
</android.support.design.widget.AppBarLayout>
?
<!--可滑动的布局内容-->
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
?
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_discuss"
android:layout_gravity="bottom|end"/>
?
?
</android.support.design.widget.CoordinatorLayout>
从上面布局看到,CoordinatorLayout协调布局中包裹了两个布局,一个是RecycleView,一个是AppBarLayout,以及FAB按钮。
我们来看看CoordinatorLayout是怎么来协调这两个子视图手势操作的。
1、由于CoordinatorLayout是FrameLayout布局,我们可以通过
android:layout_gravity="bottom|end"
scroll: 所有想滚动出屏幕的view都需要设置这个flag- 没有设置这个flag的view将被固定在屏幕顶部。enterAlways: 这个flag让任意向下的滚动都会导致该view变为可见,启用快速“返回模式”。enterAlwaysCollapsed: 当你的视图已经设置minHeight属性又使用此标志时,你的视图只能已最小高度进入,只有当滚动视图到达顶部时才扩大到完整高度。exitUntilCollapsed: 滚动退出屏幕,最后折叠在顶端。
app:layout_behavior="@string/appbar_scrolling_view_behavior"
总结: 为了使得Toolbar有滑动效果,必须做到如下三点:
app:layout_behavior="@string/appbar_scrolling_view_behavior"
//去掉标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
//隐藏状态栏
getWindow().setFlags(WindowManager.LayoutParams. FLAG_FULLSCREEN , WindowManager.LayoutParams. FLAG_FULLSCREEN);
如果去掉单个的Activity:
<activity android:name=”.MainActivity” android:theme=”
如果我们要设置整个Application都去掉title bar,那么就设置application:
<application android:theme=”
关于ActionBar、ToolBar、TitleBar、StatusBar的理解
原文:https://www.cnblogs.com/mesaz/p/11141355.html