【问题标题】:Problems with AppCompat 21 ToolbarAppCompat 21 工具栏的问题
【发布时间】:2015-05-25 00:10:20
【问题描述】:

所以我从使用 Material 主题更改为 AppCompat 以支持非 Lollipop 设备,我在使用 AppCompat 工具栏时遇到了一些问题。 首先,工具栏没有使用原色:

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"/>

原色设置为:

<style name="AppTheme" parent="Theme.Base"/>

<style name="Theme.Base" parent="Theme.AppCompat.Light">
        <item name="android:colorPrimary">@color/primary</item>
        <item name="android:colorPrimaryDark">@color/primary_dark</item>
        <item name="android:colorAccent">@color/accent</item>
        <item name="windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
</style>

我正在为我的活动使用这个主题:

<activity
        android:name=".MainActivity"
        android:theme="@style/AppTheme"
 </activity>

我正在像这样将工具栏添加到活动中:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

Activity 正在扩展ActionBarActivity

我还注意到,在使用 AppCompat 库时,所有内容都向上移动了一点。这是故意的吗?即使我选择了浅色主题,菜单按钮也显示为黑色。并且工具栏没有在其下方显示任何阴影,就像香草材质一样。我该如何解决这些错误?

【问题讨论】:

  • 使用 appcompat 时从所有内容中删除 android:

标签: android toolbar android-theme android-appcompat material-design


【解决方案1】:

1.创建主题

<style name="AppBaseTheme" parent="Theme.AppCompat.Light"></style>

     <style name="AppTheme2" parent="AppTheme.Base">
        <item name="colorPrimary">@color/ColorPrimary</item>
        <item name="colorPrimaryDark">@color/ColorPrimaryDark</item>
    </style>

2.设置为活动

<activity android:name="OtherApp" android:theme="@style/AppTheme2" > </activity>

  1. 创建工具栏
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/ColorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.Dark"
    android:elevation="4dp">

</android.support.v7.widget.Toolbar>
  1. 最后是

toolbar = (Toolbar) findViewById(R.id.tool_bar); setSupportActionBar(toolbar);

这是我的结果

【讨论】:

  • 谢谢!如何将工具栏的主题更改为白色?我不希望菜单看起来是黑色的。以及对上移活动中的内容的任何修复?
  • 在您的工具栏中添加 app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 可能有助于使菜单变白
  • 请告诉我上面的图片内容向上移动了?因为我认为它是垂直居中的。
  • 我不是说action bar,我是说action bar下面的内容,比如textViews。使用材质操作栏,它们位于某个位置,使用 appcompat 操作栏后,它们向上移动 50dp
【解决方案2】:

在使用 appcompact 库时,您不应该像这样使用 android:colorPrimary,它应该是 colorPrimary 看来你的风格有问题

<style name="AppTheme" parent="Theme.Base"/>

<style name="Theme.Base" parent="Theme.AppCompat.Light">
        <item name="android:colorPrimary">@color/primary</item>
        <item name="android:colorPrimaryDark">@color/primary_dark</item>
        <item name="android:colorAccent">@color/accent</item>
        <item name="windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
</style>

改成

<style name="AppTheme" parent="Theme.Base"/>

<style name="Theme.Base" parent="Theme.AppCompat.Light">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primary_dark</item>
        <item name="colorAccent">@color/accent</item>
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
</style>

【讨论】:

  • 我已经知道了,但还是谢谢你。您对上移的内容有解决办法吗?
  • 我知道,但我该如何解决?
猜你喜欢
  • 2014-12-20
  • 2014-12-24
  • 2014-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-05
  • 2015-01-07
  • 1970-01-01
相关资源
最近更新 更多