您的位置:首页 > 其它

ActionBar详解和toolbar详解

2016-10-13 00:52 253 查看
转自:http://www.imooc.com/article/2844

ActionBar详解

一、Actionbar的使用用途

1. Actionbar的五大用途:可以使用图标做导航

2. 提供导航标签

3. 提供下拉列表导航

4. 为菜单添加动作视图

5. 为菜单添加Actionprovide

二、Actionbar的使用方法

1.如果不使用Actionbar的时候可以<activity android :theme=”@android:style/Theme.holo.NoActionBar”>也可以在java代码中设置ActionBar actionbar=getActionBar();

Actionbar.hide();
actionBar的基本使用方法 
private void setActionBar() {
actionbar = getSupportActionBar();
//显示返回箭头默认是不显示的
actionbar.setDisplayHomeAsUpEnabled(true);
//显示左侧的返回箭头,并且返回箭头和title一直设置返回箭头才能显示
actionbar.setDisplayShowHomeEnabled(true);
actionbar.setDisplayUseLogoEnabled(true);
//显示标题
actionbar.setDisplayShowTitleEnabled(true);
actionbar.setTitle("   ");
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home://actionbar的左侧图标的点击事件处理
finish();
break;
}
return super.onOptionsItemSelected(item);
}


2. 也可以自定义ActionBar
private void setCustomActionBar() {
if (actionbar != null) {
//在自定义的actionbar中设置
actionbar.setDisplayHomeAsUpEnabled(false);
actionbar.setDisplayShowHomeEnabled(false);
actionbar.setDisplayShowTitleEnabled(false);
//设置自定义的view
actionbar.setDisplayShowCustomEnabled(true);
actionbar.setCustomView(R.layout.activity_title);
}
}

ToolBar详解

1、用途

1参考Actionbar

2、使用方法
使用系统自带的
1,  Style
2,  <!--Base application theme. -->
<style name="AppTheme" parent="AppTheme.Base">
</style>

<style name="AppTheme.Base" parent="Theme.AppCompat">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="colorPrimary">@color/accent_material_dark</item>
<item name="colorPrimaryDark">@color/accent_material_light</item>
<item name="android:windowBackground">@color/dim_foreground_material_dark</item>
</style>


3, Xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!--<include layout="@layout/activity_toolbar_title"/>-->

<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary">
</android.support.v7.widget.Toolbar>

</LinearLayout>


4, java代码
/**
*设置toolbar
*/
private void setToolbar(){
Toolbar toolbar= (Toolbar) findViewById(R.id.toolbar);
//设置APP图标
toolbar.setLogo(R.mipmap.ic_launcher);
//设置title
toolbar.setTitle("欢迎页");
//设置副标题 zxcv
toolbar.setSubtitle("副标题");
setSupportActionBar(toolbar);

//设置toolabar
//设置导航图标一定要设置在setsupportactionbar后面才有用不然他会显示小箭头
toolbar.setNavigationIcon(R.mipmap.ic_launcher);
toolbar.setOnMenuItemClickListener(onMenuItemClick);

}
private Toolbar.OnMenuItemClickListener onMenuItemClick = new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
String msg = "";
switch (menuItem.getItemId()) {
//进行设置toolbar中menuitem的点击事件
}
if(!msg.equals("")) {
}
return true;
}
};

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.welcome_menu_item,menu);
return true;
}


2.自定义

自定义toolbar可以在
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary">
</android.support.v7.widget.Toolbar>


这个里面添加子控件

作者: woailvjingwen 
链接:http://www.imooc.com/article/2844
来源:慕课网
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: