Android初体验(八)toolbar

  1. 首先设置主题为no actionbar
  2. 在布局文件中加入以下代码
  3. 加载toolbar
  4. 编写菜单资源文件
  5. 加载菜单资源文件
  6. 菜单按钮事件响应

toolbar和与actionbar类似的组件,但前者更灵活。使用方法如下:

首先设置主题为no actionbar

在布局文件中加入以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<android.support.design.widget.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">

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

</android.support.design.widget.AppBarLayout>

通过以上代码即可加入toolbar组件。

加载toolbar

1
2
3
4
5
6
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
if(actionBar != null) {//toolbar显示返回键
actionBar.setDisplayHomeAsUpEnabled(true);
}

编写菜单资源文件

actionbar一样

加载菜单资源文件

1
2
3
4
5
6
7
public boolean onCreateOptionsMenu(Menu menu) {//加载actionbar自定义菜单项
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
MenuItem menuItem = menu.findItem(R.id.setting);
menuItem.setVisible(false);//隐藏菜单项
return super.onCreateOptionsMenu(menu);
}

菜单按钮事件响应

1
2
3
4
5
6
7
8
9
10
11
@Override
public boolean onOptionsItemSelected(MenuItem item) {//actionbar点击响应
switch (item.getItemId()) {
case android.R.id.home:
finish();//返回
return true;
case R.id.help:
return true;
}
return super.onOptionsItemSelected(item);
}

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com

文章标题:Android初体验(八)toolbar

本文作者:子非鱼

发布时间:2018-12-05, 22:19:52

最后更新:2018-12-12, 20:04:31

原始链接:https://Wangsr.cn/2018/12/05/2018-2018-12-05-Android初体验-八-toolbar/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏