【问题标题】:Android: Trying to get rid of Material support toolbar backgroundAndroid:试图摆脱 Material 支持工具栏背景
【发布时间】:2015-07-27 00:49:47
【问题描述】:

在工具栏下方,有一个黑条,它是“包含”标签。关于如何摆脱它的任何想法?

多个应用程序之间的共同基本主题(values/styles.xml)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CommonBaseTheme.Base.Light" parent="Theme.AppCompat.Light">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowActionBar">false</item>
    </style>
    <style name="CommonBaseTheme.Light" parent="CommonBaseTheme.Base.Light"></style>

    <style name="CommonBaseTheme.Base.Dark" parent="Theme.AppCompat">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowActionBar">false</item>
    </style>
    <style name="CommonBaseTheme.Dark" parent="CommonBaseTheme.Base.Dark">    </style>
</resources>

我在多个应用之间的共同 Material 基础主题 (values-v21/styles.xml)

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="CommonBaseTheme.Light" parent="CommonBaseTheme.Base.Light">
        <item name="android:windowActivityTransitions">true</item>
        <item name="android:windowContentTransitions">true</item>
        <item name="android:windowAllowEnterTransitionOverlap">true</item>
        <item name="android:windowAllowReturnTransitionOverlap">true</item>
        <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
        <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
    </style>

    <style name="CommonBaseTheme.Dark" parent="CommonBaseTheme.Base.Dark">
        <item name="android:windowActivityTransitions">true</item>
        <item name="android:windowContentTransitions">true</item>
        <item name="android:windowAllowEnterTransitionOverlap">true</item>
        <item name="android:windowAllowReturnTransitionOverlap">true</item>
        <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
        <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
    </style>

</resources>

然后是我的特定应用程序 (values/styles.xml)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.Runewords.Base" parent="CommonBaseTheme.Dark">
        <item name="android:colorPrimary">@color/colorPrimary</item>
        <item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>
    </style>

    <!-- The theme to use in app -->
    <style name="Theme.Runewords" parent="Theme.Runewords.Base"></style>
</resources>

活动布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".activity.RecipeActivity">

    <include
        layout="@layout/toolbar"
        android:id="@+id/include4"/>

    <LinearLayout
        android:id="@+id/layoutWebview"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:orientation="horizontal"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_above="@+id/adView"
        android:layout_alignParentTop="true">
        </LinearLayout>

    <com.google.android.gms.ads.AdView
        <!-- ... -->
    </com.google.android.gms.ads.AdView>
</RelativeLayout>

最后是toolbar.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/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimaryDark"/>

如果我遗漏任何细节,请告诉我。我觉得这是一个小错误。

【问题讨论】:

  • 将Android Studio构建系统中的主题更改为您自定义的主题。在您的图像中,它是“Recipe”按钮左侧名称为“Dark”的按钮。单击它并更改为您的主题,看看它是否有帮助
  • 啊,谢谢你的帮助,现在它不再显示原来的工具栏了。

标签: android android-support-library material-design


【解决方案1】:

您包含两个操作栏。一个是通过 XML 的支持工具栏,另一个是通过您的主题包含的。您可能希望使用没有操作栏的主题。

<style name="CommonBaseTheme.Base.Light" parent="Theme.AppCompat.NoActionBar">
    ....
</style>

【讨论】:

  • 这相当于“false
  • @NguyễnHoàiNam 没错。另见:gist.github.com/kerukerupappa/6159846
  • 仅供参考,完整版应该是&lt;item name="windowActionBar"&gt;false&lt;/item&gt; &lt;item name="android:windowActionBar"&gt;false&lt;/item&gt; 以完全支持旧版本。如果您看到.NoActionBar 的源代码,它们也包含这些行(如果我没记错的话)
【解决方案2】:

这有一些问题。

  • @ahorner 是对的,我有两个酒吧(一个与主题有关,一个来自包含)
  • @Nguyễn Hoài Nam 也是对的,我也让编辑选择了错误的主题
  • 问题是我的“include”标签的 ID 为“@+id/include4”,toolbar.xml 中的工具栏 ID 为“@+id/toolbar”,它应该是名为“include”的地方"@+id/工具栏"

我还清理了 CommonBaseTheme.Base.* 以使用 NoActionBar 等效项来保持清洁。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 2012-04-26
    相关资源
    最近更新 更多