Android中的Toolbar怎么使用

Android中的Toolbar怎么使用

这篇文章主要讲解了“Android中的Toolbar怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android中的Toolbar怎么使用”吧!

Toolbar是Android5.0推出的,用来替代ActionBar的控件.可以高度的自定义,使用灵活.官方的ToolBar是必须在5.0以上的系统才能使用,如果需要在低版本中使用.需要使用support v7包中的Toolbar。

ToolbarextendsViewGroupjava.lang.Object↳android.view.View↳android.view.ViewGroup↳android.support.v7.widget.Toolbar

使用前提

要使用ToolBar需要将activity的ActionBar隐藏掉.那么如何隐藏呢?有三种方法.下面分别介绍

方法一:

在res/values/styles.xml文件中修改

<stylename="AppTheme.Base"parent="Theme.AppCompat"><itemname="windowActionBar">false</item><itemname="android:windowNoTitle">true</item></style>

也可以直接使用没有ActionBar的主题

<stylename="AppTheme"parent="Theme.AppCompat.Light.NoActionBar">

方法二:

在清单文件中修改制定activity的主题,如下所示:

<activityandroid:name="MainActivity"android:theme="@style/Theme.AppCompat.Light.NoActionBar"></activity>

方法三:

直接在代码中取消. 在setContentView之前。

requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_main);//supportRequestWindowFeature(Window.FEATURE_NO_TITLE);在AppCompatActivity中

怎么使用

在布局文件中.添加如下代码. 位置不固定。

<android.support.v7.widget.Toolbarandroid:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="?android:attr/actionBarSize"android:background="?attr/colorPrimaryDark"app:title="Title"app:titleTextColor="#222222"app:logo="@mipmap/ic_launcher"app:subtitle="subtitle"></android.support.v7.widget.Toolbar>

title 用来设置标题.subtitle设置副标题 titleTextColor用来设置标题字体颜色.background用来设置背景颜色..效果如下:

在java代码中也可以动态的设置这些值。

mToolbar.setTitle("JavaTitle");mToolbar.setSubtitle("JavaSubTitle");mToolbar.setLogo(R.mipmap.ic_launcher);mToolbar.setNavigationIcon(android.R.drawable.ic_input_delete);mToolbar.setOverflowIcon(ContextCompat.getDrawable(this,android.R.drawable.ic_menu_more));/setActionBar(mToolbar);//activity中setSupportActionBar(mToolbar);//AppCompatActivity中

添加Menu

要添加menu首先我们需要有menu,在这里我选择在res/menu/中创建main.xml来定义menu文件.代码如下

<?xmlversion="1.0"encoding="utf-8"?><menuxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"><itemandroid:id="@+id/add"android:icon="@android:drawable/ic_menu_add"android:title="Add"app:showAsAction="never|withText"/><itemandroid:id="@+id/delete"android:icon="@android:drawable/ic_menu_delete"android:title="Delete"app:showAsAction="never|withText"/><itemandroid:id="@+id/edit"android:icon="@android:drawable/ic_menu_edit"android:title="Edit"app:showAsAction="never|withText"/><itemandroid:id="@+id/email"android:icon="@android:drawable/sym_action_email"android:title="Email"app:showAsAction="never|withText"/></menu>

下面是java文件中的代码。

@OverridepublicbooleanonCreateOptionsMenu(Menumenu){getMenuInflater().inflate(R.menu.main,menu);returntrue;}@OverridepublicbooleanonOptionsItemSelected(MenuItemitem){switch(item.getItemId()){caseandroid.R.id.home:Toast.makeText(MainActivity.this,"您点击了NavigationIcon",Toast.LENGTH_SHORT).show();break;caseR.id.add:Toast.makeText(MainActivity.this,"Add",Toast.LENGTH_SHORT).show();break;caseR.id.delete:Toast.makeText(MainActivity.this,"Delete",Toast.LENGTH_SHORT).show();break;caseR.id.edit:Toast.makeText(MainActivity.this,"Edit",Toast.LENGTH_SHORT).show();break;caseR.id.email:Toast.makeText(MainActivity.this,"Email",Toast.LENGTH_SHORT).show();break;}returntrue;}

显示Menu中的Icon

在写到这里之后.我们会发现.隐藏的menu是不显示icon的,那么我们怎么设置呢:

只需要重新一下方法: 这里的activity是 AppCompatActivity

@OverrideprotectedbooleanonPrepareOptionsPanel(Viewview,Menumenu){if(menu!=null){if(menu.getClass()==MenuBuilder.class){try{Methodm=menu.getClass().getDeclaredMethod("setOptionalIconsVisible",Boolean.TYPE);m.setAccessible(true);m.invoke(menu,true);}catch(Exceptione){Log.i("tag","onPrepareOptionsPanel:"+getClass().getSimpleName()+"onMenuOpened...unabletoseticonsforoverflowmenu"+e);}}}returnsuper.onPrepareOptionsPanel(view,menu);}

感谢各位的阅读,以上就是“Android中的Toolbar怎么使用”的内容了,经过本文的学习后,相信大家对Android中的Toolbar怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是恰卡编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

发布于 2022-04-15 22:28:36
收藏
分享
海报
0 条评论
30
上一篇:Android中如何实现嵌套滚动 下一篇:Android中如何运行ClojureScript
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码