[英]“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.