簡體   English   中英

向Android操作欄添加操作

[英]Adding Action to the Action Bar Android

我試圖將搜索圖標添加到操作欄,並且它顯示在Android Studio的xml預覽中,但是當我運行我的應用程序時,它顯示在溢出菜單中,而不是操作欄上的圖標。 我究竟做錯了什么?

menu_launch.xml:

<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=".LaunchActivity">

<item android:id="@+id/action_search"
    android:icon="@drawable/ic_action_search"
    android:title="@string/action_search"
    app:showAsAction="ifRoom"/>

<item android:id="@+id/action_settings"
    android:title="@string/action_settings"
    android:orderInCategory="100"
    app:showAsAction="never"/>

我嘗試將app:showAsAction設置為"always"但是沒有用。

在我的LaunchActivity.java中:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_launch, menu);
    return super.onCreateOptionsMenu(menu);
}

我的LaunchActivity.java擴展了Activity,而不是ActionBarActivity,我不知道這是否與它有關。

謝謝您的幫助,這是我的第一個應用程序。

對於ActionBarActivity ,您將使用app:showAsAction ,因為它將是AppCompat屬性。

對於Activity ,您應該使用android:showAsAction因為這是它讀取的唯一屬性。

如果希望它始終顯示為圖標,請將屬性設置為"always"

讓您的活動擴展ActionBarActivity。 您擁有的menu_launch.xml將起作用。

嘗試更改您的主題。 這也取決於您的主題。 在styles.xml文件中

     <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">

讓我知道它是否有效,因為其他所有內容似乎都在您的代碼中起作用。 您還需要將此引用放入manifest.xml文件。 您的主要活動

<application
android:theme="@style/AppTheme" />

根據文檔。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
 <!-- Search, should appear as action button -->
<item android:id="@+id/action_search"
      android:icon="@drawable/ic_action_search"
      android:title="@string/action_search"
      android:showAsAction="ifRoom" />
<!-- Settings, should always be in the overflow -->
<item android:id="@+id/action_settings"
      android:title="@string/action_settings"
      android:showAsAction="never" />
</menu>

這聲明當操作欄中有可用空間時,“搜索”操作應顯示為操作按鈕,但“設置”操作應始終出現在溢出中。 默認情況下,所有動作都會出現在溢出中,但是最好明確聲明每個動作的設計意圖。

因此,嘗試旋轉屏幕,只要有足夠的空間容納圖標即可,您的應用就會顯示該屏幕。您應該設置showAsAction =“ always”。

Why you are sitting app:showAsAction="never" in action_settings try this

 <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=".LaunchActivity">

      <item android:id="@+id/action_search"
       android:icon="@drawable/ic_action_search"
       android:title="@string/action_search"
       app:showAsAction="ifRoom"/>

       <item android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:orderInCategory="100"
        app:showAsAction="ifRoom"/>
  </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=".LaunchActivity">

     <item android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:orderInCategory="100"
        app:showAsAction="never"/>

      <item android:id="@+id/action_search"
       android:icon="@drawable/ic_action_search"
       android:title="@string/action_search"
       app:showAsAction="ifRoom"/>


 </menu>

android:showAsAction="never"

android:showAsAction="ifRoom"

這些只是將其更改為

android:showAsAction="always"

嘗試將app:showAsAction更改為android:showAsAction

暫無
暫無

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

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