我正在设置动作栏的样式。我遇到此错误You need to use a Theme.AppCompat theme (or descendant) with this activity
我知道我应该在我的主要活动中延长Activity
但是我正在扩展AppCompatActivity
,因为我正在使用此代码setSupportActionBar(toolbarTop);
如果我删除了{{1}我将无法使用底部工具栏;
这是我的代码
AppCompatActivity
清单
public class MainActivity extends AppCompatActivity {
...
private void initToolbars() {
Toolbar toolbarTop = (Toolbar) findViewById(R.id.toolbar_top);
setSupportActionBar(toolbarTop);
Toolbar toolbarBottom = (Toolbar) findViewById(R.id.drawer_layout);
toolbarBottom.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_settings:
// Single menu item is selected do something
// Ex: launching new activity/screen or show alert message
Toast.makeText(MainActivity.this, "Bookmark is Selected", Toast.LENGTH_SHORT).show();
return true;
case R.id.menu_save:
Toast.makeText(MainActivity.this, "Save is Selected", Toast.LENGTH_SHORT).show();
return true;
case R.id.menu_search:
Toast.makeText(MainActivity.this, "Search is Selected", Toast.LENGTH_SHORT).show();
return true;
case R.id.menu_share:
Toast.makeText(MainActivity.this, "Share is Selected", Toast.LENGTH_SHORT).show();
return true;
}
return true;
}
});
toolbarBottom.inflateMenu(R.menu.menu_main);
}
样式
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.je.www.i" >
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/CustomActionBarTheme" >
<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>
答案 0 :(得分:2)
您的Theme
应该是
<style name="CustomActionBarTheme" parent="Theme.AppCompat.Light.DarkActionBar">
将父级设为Theme.AppCompat.Light.DarkActionBar
答案 1 :(得分:1)
像
一样更改主题<style name="CustomActionBarTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowActionBar">false</item>
<item name="windowActionBar">false</item>
</style>
通过这种方式,您不会请求ActionBar并且您应该能够使用工具栏,或者更好地使用Theme.AppCompat.Light.NoActionBar
,因为您想要使用ToolBar
并且您不需要ActionBar
1}}。使用Theme.AppCompat.Light.NoActionBar
您无需为您的样式提供标记windowActionBar