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怎么使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是恰卡编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!
推荐阅读
-
怎么使用Android基准配置文件Baseline Profile方案提升启动速度
-
HTML5如何实现禁止android视频另存为
-
学java好还是学php好?
-
Android如何实现多点触控功能
-
android怎么实现多点触摸应用
-
Android怎么实现手势划定区域裁剪图片
-
android怎么实现简单的矩形裁剪框
-
Android单选多选按钮怎么使用
-
Android中如何利用oncreate获取控件高度或宽度
Android中如何利用oncreate获取控件高度或宽度本篇内容...
-
Android中怎么使用onSaveInstanceState()方法
Android中怎么使用onSaveInstanceState()方法...