簡體   English   中英

沒有顯示“操作欄”

[英]“Action Bar” doesn't show up

我正在嘗試在API版本8上實現操作欄(appcompatv_7)。盡管我的代碼中沒有錯誤,但是操作欄不會顯示,而是通過按菜單按鈕以文本格式顯示。 這是Java代碼:

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        return super.onCreateOptionsMenu(menu);
    }
}

菜單代碼:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.usingsherlockkk.MainActivity" >

    <item
        android:id="@+id/item1"
        android:icon="@android:drawable/ic_menu_add"
        android:showAsAction="ifRoom"
        android:title="Title1">
    </item>
    <item
        android:id="@+id/item2"
        android:icon="@android:drawable/ic_menu_delete"
        android:showAsAction="ifRoom"
        android:title="Title2">
    </item>
    <item
        android:id="@+id/reset"
        android:icon="@android:drawable/ic_menu_revert"
        android:showAsAction="ifRoom"
        android:title="Revert">
    </item>
    <item
        android:id="@+id/item4"
        android:icon="@android:drawable/ic_menu_edit"
        android:showAsAction="ifRoom"
        android:title="Title4">
    </item>
    <item
        android:id="@+id/item5"
        android:icon="@android:drawable/ic_menu_help"
        android:showAsAction="ifRoom"
        android:title="Title5">
    </item>

</menu>

清單文件代碼:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.usingsherlockkk"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.AppCompat.Light"
        android:uiOptions="splitActionBarWhenNarrow" >
        <activity
            android:name="com.example.usingsherlockkk.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>

</manifest>

伙計們,我的問題是所有菜單項都溢出顯示,僅出現標題。 我用大/小屏幕設備檢查了它,但它保持不變。 我希望我已經很好地解釋了我的問題。 讓我知道是否有些朦朧

試試這個代碼

  @Override
     protected void onCreate(Bundle arg0) {
        getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
        super.onCreate(arg0);
        setContentView(R.layout.activity_main);
    }

好的,我已經解決了我自己的問題。 問題在於在“ menu.xml”中定義操作項。 Android文檔說您不能在舊設備上使用“ android:showAsAction”,因為在舊版本中不存在。 您必須使用自定義名稱空間。 不用說“ android:showAsAction”,而是使用“ app:showAsAction”,您就可以開始了。 這是官方頁面的附件:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
    <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          yourapp:showAsAction="ifRoom"  />
    ...
</menu>

使用支持庫中的XML屬性:

注意,上面的showAsAction屬性使用標記中定義的自定義名稱空間。 使用支持庫定義的任何XML屬性時,這是必需的,因為這些屬性在舊設備的Android框架中不存在。 因此,您必須使用自己的名稱空間作為支持庫定義的所有屬性的前綴。

我希望它可以幫助某個人。

我的操作方式如下: AndroidManifest.xml文件中有一行

android:theme="@style/AppTheme.NoActionBar"

我只是將其更改為

android:theme="@style/AppTheme"

問題解決了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM