我正在尝试构建我的应用程序,但没有成功..我尝试了几种方式,但没有任何工作。例外是:
Accept
我的style.xml是:
Content-Type
你可以看到我宣布了
Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
这是我的manifest.xml
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- theme customizations -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:textColorPrimary">@color/ldrawer_color</item>
<item name="actionMenuTextColor">@color/ldrawer_color</item>
<item name="android:textColorSecondary">@color/ldrawer_color</item>
</style>
</resources>
和我用来扩展其他活动的<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<application
android:allowBackup="true"
tools:replace="android:icon"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
我不知道它崩溃的原因。启动应用程序而不崩溃的唯一方法是在BaseActivity
中的style.xml上设置父级,但这样状态栏是透明的而不是彩色的。 ..
答案 0 :(得分:47)
使用Theme.AppCompat.Light
告诉Android您希望框架为您提供ActionBar。但是,您正在创建自己的ActionBar(Toolbar
),因此您可以为框架提供有关ActionBar来源的混合信号。
由于您使用的是工具栏,因此需要Theme.AppCompat.Light.NoActionBar
。
下一步是确保您的工具栏样式正确,这似乎是您遇到问题的地方。要使用您为主题定义的颜色为ActionBar设置工具栏样式,您需要提供如下主题:
<android.support.v7.widget.Toolbar
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />
有关详细信息,请参阅this Android Developers blog post上工具栏小部件的“样式”部分。
答案 1 :(得分:13)
假设你在styles.xml
中有这一行:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
在以下后面添加这些额外的行:
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
然后将其添加到清单中的活动:
<activity android:name=".activity.YourActivity"
android:theme="@style/AppTheme.NoActionBar"><!-- ADD THIS LINE -->
在检查教程和其他解决方案后,这对我来说是最好的解决方案
答案 2 :(得分:4)
在我的情况下,我创建了一个新活动,忘了在AndroidManifest.xml中定义它的app:theme:
import numpy as np
import matplotlib.pyplot as plt
ind = np.arange(5)
avg_bar1 = (81191,79318,57965,60557,14793)
avg_bar2 = (26826,26615,31364,31088,55472)
avg_bar3 = (36232,38038,38615,39014,40812)
avg_bar4 = (26115,25879,25887,28326,27988)
fig, ax = plt.subplots()
rects1 = ax.bar(ind, avg_bar1, 0.15, label='bar1')
rects2 = ax.bar(ind + 0.15, avg_bar2, 0.15, label='bar2')
rects3 = ax.bar(ind + 0.30, avg_bar3, 0.15, label='bar2')
rects4 = ax.bar(ind + 0.45, avg_bar4, 0.15, label='bar2')
plt.xlabel('Distributions')
plt.ylabel('ms')
plt.xticks(ind + 0.15, ('50/50', '60/40', '70/30', '80/20', '90/10'))
plt.legend()
plt.tight_layout()
plt.show()
答案 3 :(得分:1)
我在更改&#34; android:theme&#34;的值后解决了这个问题。来自&#34; @ style / AppTheme&#34;的清单中的活动to&#34; @ style / AppTheme.NoActionBar&#34;:
<activity android:name=".MyXXXActivity"
... android:theme="@style/AppTheme.NoActionBar" />
答案 4 :(得分:0)
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<android.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.NoActionBar">
</android.appcompat.widget.Toolbar>
<activity android:name=".activity.activity_name"
android:theme="@style/AppTheme.NoActionBar">
</activity>