美文网首页
Toolbar 使用

Toolbar 使用

作者: cynic_1218 | 来源:发表于2016-06-01 15:36 被阅读149次

Toolbar是在 Android 5.0 开始推出的一个 Material Design 风格的导航控件 ,Google 非常推荐大家使用 Toolbar 来作为Android客户端的导航栏,以此来取代之前的 Actionbar 。它可以用来

  1. 设置导航栏图标;
  2. 设置App的logo;
  3. 支持设置标题和子标题;
  4. 支持添加一个或多个的自定义控件;
  5. 支持Action Menu;

Toolbar使用

第一步:1.去除系统自带 actionBar

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
</style>

第二步:布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        />

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
</LinearLayout>

这里说明一下,使用5.0控件属性时要再加个命名控件

xmlns:app="http://schemas.android.com/apk/res-auto"

app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"

菜单与文字都是白色

第三步代码结合

代码很简单:

mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
Paste_Image.png

运行代码 Toolbar 就显示出来了。

//mToolbar.setNavigationIcon(R.mipmap.ic_list_white);//设置导航栏图标
//mToolbar.setLogo(R.mipmap.ic_launcher);//设置app logo
//mToolbar.setTitle("5.0Title");//设置主标题
//mToolbar.setSubtitle("5.0Subtitle");//设置子标题

action menu 菜单项

在menu文件夹下新建main_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/ab_search"
        android:orderInCategory="80"
        android:title="action_search"
        app:actionViewClass="android.support.v7.widget.SearchView"
        app:icon="@mipmap/ic_search_white_24dp"
        app:showAsAction="ifRoom"/>
    <item
        android:id="@+id/action_share"
        android:orderInCategory="90"
        android:title="action_share"
        app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
        app:icon="@mipmap/ic_share_white_24dp"
        app:showAsAction="ifRoom"/>
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="action_settings"
        app:icon="@mipmap/ic_more_vert_white"
        app:showAsAction="never"/>
</menu>

android:showAsAction。 这个属性可接受的值有:
1.alaways:这个值会使菜单项一直显示在ActionBar上。    
2.ifRoom:如果有足够的空间,这个值会使菜单显示在ActionBar上。    
3.never:这个值菜单永远不会出现在ActionBar是。    
4.withText:这个值使菜单和它的图标,菜单文本一起显示。

复写onCreateOptionsMenu方法

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

复写onOptionsItemSelected方法监听点击事件

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
       
    }

    return super.onOptionsItemSelected(item);
}

相关文章

网友评论

      本文标题:Toolbar 使用

      本文链接:https://www.haomeiwen.com/subject/ifwcdttx.html