【问题标题】:Creating android toolbar with material metrics使用材料指标创建 android 工具栏
【发布时间】:2016-03-29 06:37:52
【问题描述】:

我想在我的应用程序中创建一个工具栏,看起来就像 gmail 应用程序中的工具栏。这里有关于材质工具栏指标的描述:https://www.google.com/design/spec/layout/structure.html#structure-app-bar

这表示导航图标左侧应该有一个 16dp 的空间,标题前应该有一个 72dp 的空间,你能帮我完成这项工作吗?

目前它看起来像这样:

工具栏 xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/material_toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/action_bar_bg"
    android:minHeight="?attr/actionBarSize" />

在我的 style.xml 中:

<style name="DefaultTheme.Toolbar">
    <item name="windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="windowActionBarOverlay">true</item>
    <item name="android:windowTranslucentStatus">true</item>
</style>

【问题讨论】:

  • 我不认为这是真的,但无论如何,我有一个现有的应用程序要转换,而不是从头开始创建一个。

标签: android android-actionbar android-toolbar


【解决方案1】:

就这样使用吧:

<android.support.v7.widget.Toolbar
    android:id="@+id/my_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize">

使用

设置您的标题
getSupportActionBar().setTitle(title);

指南说:

图标:24dp

两个触摸目标:48dp

默认情况下,您的菜单项的尺寸为 48dpx48dp。所以你的图标大小必须是 24 dp。 (对于 xxhdpi 72 px 等)

就这么简单。您无需再做任何事情。通过使用这些,我的应用通过了精选应用审核。

如果你想为你的标题添加左填充,你可以这样做:

<android.support.v7.widget.Toolbar
    android:id="@+id/my_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    app:contentInsetLeft="72dp"
    app:contentInsetStart="72dp">

它应该是 72dp。

【讨论】:

  • 非常感谢您的回答,我正在尝试解决这个问题很长一段时间!我目前实际上正在这样做,但尺寸并不像预期的那样,我想知道我错过了什么......那么我是否需要定义自定义(24dp)图标才能在我的可绘制文件夹中发生这种情况?我应该以某种方式扩展触摸目标吗?我的主要风格是从 Theme.AppCompat.Light 扩展而来的吗?请查看我对当前尺寸和 xmls 的更新问题。
  • @Analizer 如果您没有更改标准 ActionBarDrawerToggle 没有问题。我的工具栏和你的一样。没关系。
  • 我也这么认为,但遗憾的是这不符合要求。不可能是这段代码搞砸了,对吧? mDrawerToggle = new ActionBarDrawerToggle(活动,drawerLayout,工具栏,R.string.navigation_drawer_open,R.string.navigation_drawer_close){public void onDrawerClosed(View view){...} public void onDrawerOpened(ViewdrawerView){...}}; drawLayout.setDrawerListener(mDrawerToggle);
  • @Analizer 看起来不符合要求,但实际上符合要求。审查我的应用程序的人对此表示同意。因为标准工具栏是这样来的,所以不符合自己的指导方针。您还可以添加插图填充。我现在将更新我的答案。
  • 非常感谢@oguzhand,它终于开始工作了!赏金花得值:)
猜你喜欢
  • 1970-01-01
  • 2022-08-04
  • 2017-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-23
  • 2015-03-29
相关资源
最近更新 更多