操作栏不显示

问题描述 投票:0回答:8

我尝试在我的应用程序中实现操作栏。

菜单.xml

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

    <item
        android:id="@+id/itemAdd"
        android:showAsAction="ifRoom|withText"
        android:title="ADD">
    </item>
    <item
        android:id="@+id/itemRefresh"
        android:showAsAction="ifRoom|withText"
        android:title="REFRESH">
    </item>
    <item
        android:id="@+id/itemHelp"
        android:title="HELP">
    </item>

</menu>

并创建了菜单

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.menu, menu);
        return true;
    }

enter image description here

但是即使

minSdkVersion
是11,它也不显示操作栏。是什么原因?

android android-actionbar
8个回答
85
投票

删除操作栏活动的主题 在 androidManifest 文件中。现在它可以工作了...

<application
    android:allowBackup="true"
    android:icon="@drawable/tasktodo"
    android:label="@string/app_name"
    >

请勿在应用程序清单文件中添加任何主题。如果您添加了一个,请删除并尝试运行它...


7
投票

将班级中的 Activity 更改为 AppCompatActivity。如果你想快速添加它,这应该是最简单的。我将为刚接触 Android 操作系统的人添加代码:

public class YourActivity extends Activity 

进入

public class YourActivity extends AppCompatActivity

5
投票

您必须将 Activity 的样式设置为

Theme.Holo
或其变体之一,ActionBar 才能显示。如果你想保持向后兼容性,请在 Activity 的 onCreate 中调用 setTheme :

setTheme(android.R.style.Theme_Holo);

5
投票

具有这样的清单的应用程序

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.Actionbartest"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="11" />
    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
        <activity android:name="MyActivity"
                  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>
</manifest>

Menu.xml 像这样

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

    <item
            android:id="@+id/itemAdd"
            android:showAsAction="ifRoom|withText"
            android:title="ADD">
    </item>
    <item
            android:id="@+id/itemRefresh"
            android:showAsAction="ifRoom|withText"
            android:title="REFRESH">
    </item>
    <item
            android:id="@+id/itemHelp"
            android:title="HELP">
    </item>
</menu>

还有这样的活动

package com.example.Actionbartest;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;

public class MyActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.menu, menu);
        return true;
    }
}

看起来像这样。

enter image description here

您确定您的手机或模拟器运行的是 Android 3.0 或更高版本吗?如果没有,您最终将得到屏幕截图。

要在旧设备上启用操作栏,您应该使用 AppCompat/support 库 (https://developer.android.com/tools/support-library/features.html)


2
投票
    android:allowBackup="true"
    android:icon="@drawable/ic2"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Holo.Light.DarkActionBar" 

这有效。把它放进你的


2
投票

我导入

import android.support.v7.app.AppCompatActivity;

然后编辑为

public class MainActivity extends AppCompatActivity

添加依赖项

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:25.0.0'
}

0
投票
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" ... >

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <activity android:name=".MyActivity" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <!-- Put the RTA label here ... -->
            <meta-data android:name="RTA" android:value="RTA-5042-1996-1400-1577-RTA" />

        </activity>
    </application>
</manifest>

0
投票

您可以尝试在 res>values>themes.xml 中更改主题

将父级更改为

Theme.AppCompat.Light.DarkActionBar

<!-- Base application theme. -->
<style name="Base.Theme.Android_Test_2_1" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your dark theme here. -->
    <!-- <item name="colorPrimary">@color/my_dark_primary</item> -->
</style>
这个对我有用
© www.soinside.com 2019 - 2024. All rights reserved.