android toolbar 动画,Android toolbar的那些坑

在新版的Android 5.0中,出现了一大波的新控件,以配合MD化的设计风格。最近在做一个项目,在使用toolbar的时候遇到了一些坑,记录下来分享。

1 toolbar自带一个方便的抽屉和返回图标

5add3196b16c93c686e095631f74de60.png

4683845d7af891aab39131ebe754ce0c.png

以及展开和收回的时候会有自带的很漂亮的动画

58a0b6a7c95211c6ad4f5b64f6d8a0ea.png

2 设置标题

toolbar_main = (Toolbar) findViewById(R.id.toolbar_main);

toolbar_main.setTitle("首页");

toolbar_main.setTitleTextColor(getResources().getColor(R.color.white));

setSupportActionBar(toolbar_main);

3 设置主题

一个普通的主题xml如下

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

android:id="@+id/toolbar_main"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="?attr/colorPrimary"

android:minHeight="?attr/actionBarSize"

app:popupTheme="@style/AppTheme.PopupOverlay"

app:theme="@style/AppTheme" />

4 设置菜单

使用

onCreateOptionsMenu

方法设置菜单。

5 主题内容详解

一个普通的主题xml如下

@color/colorPrimary

@color/colorPrimaryDark

@android:color/white

#FFFFFF

@color/background_color

@android:color/white

@color/colorAccent

true

前三项没什么好说的。

分别是toolbar的颜色

状态栏(也就是toolbar上面的那个黑色栏)的颜色

文字颜色

第四项:左边抽屉图标和右边三个点(英文叫做overflow)的颜色,如果不设置就是这样

e919b1fd0294f020d0f5356aafd4bb9f.png

第五项:下方主界面的颜色,如图

135e436844ff583b4e9866099fc8b485.png

第六项:不知道,目前没有用到

第七项:各类控件的边框和底色,详见

http://blog.sina.com.cn/s/blog_6e334dc70102ve7d.html

第八项:一般必须设置为true,如果不设置就是这样

0833a69cad7110ca9067e958dd213576.png

但是设置以后会出现toast错位的情况

6194678163307ac2b5eb08198c8e8139.png

此时在Toast的上下文应该使用application的context,就可恢复正常。

6 菜单注意事项

显示方式:默认是占满为止,也就是ifRoom。

如果只有一个图标需要使用 app:showAsAction="always"

注意不是 android:showAsAction="always"。

需要加上app的空间 xmlns:app="http://schemas.android.com/apk/res-auto"

此时右边的三个点(overflow)自动隐藏。

b7c7dc287e8c3091c27c56f438478e1a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 中的顶部导航栏通常使用 Toolbar 和 NavigationView 组件来实现。 以下是一个简单的代码示例: 在布局文件中添加 Toolbar 和 NavigationView 组件: ``` <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" android:theme="@style/ThemeOverlay.AppCompat.ActionBar" /> <com.google.android.material.navigation.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" app:headerLayout="@layout/nav_header" app:menu="@menu/nav_menu" /> ``` 在 Activity 中设置 Toolbar 和 NavigationView: ``` Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); DrawerLayout drawer = findViewById(R.id.drawer_layout); ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); drawer.addDrawerListener(toggle); toggle.syncState(); NavigationView navigationView = findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); ``` 其中,setSupportActionBar() 方法将 Toolbar 添加到 Activity 中,ActionBarDrawerToggle 用于实现抽屉菜单的动画效果,setNavigationItemSelectedListener() 方法设置 NavigationView 的点击事件。 通过在 menu 文件夹中创建 nav_menu.xml 文件,可以为 NavigationView 添加菜单项: ``` <menu xmlns:android="http://schemas.android.com/apk/res/android"> <group android:checkableBehavior="single"> <item android:id="@+id/nav_home" android:icon="@drawable/ic_home" android:title="Home" /> <item android:id="@+id/nav_gallery" android:icon="@drawable/ic_gallery" android:title="Gallery" /> <item android:id="@+id/nav_slideshow" android:icon="@drawable/ic_slideshow" android:title="Slideshow" /> </group> </menu> ``` 这样就可以实现一个简单的顶部导航栏了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值