2016-02-09 114 views
1

我正在開發一個Android應用程序,我遇到了在片段中執行ActionBar的問題。ActionBar不顯示在Android KitKat 4.4.4

這裏是我的片段代碼:

public class TopicListFragment extends ListFragment { 

private LinkedList<Topic> mTopics; 
private static final String TAG = "TopicListFragment"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setHasOptionsMenu(true); 

    mTopics = TopicLab.get(getActivity()).getTopics(); 

    ArrayAdapter<Topic> adapter = new TopicAdapter(mTopics); 

    setListAdapter(adapter); 
} 

@Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     Log.d(TAG, "Menu created"); 
     super.onCreateOptionsMenu(menu, inflater); 
     inflater.inflate(R.menu.fragment_topic_list, menu); 
    } 

而這裏的MENY佈局的XML文件:

<?xml version="1.0" encoding="utf-8"?> 
    <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" > 

     <item android:id="@+id/menu_item_new_topic" 
       android:icon="@android:drawable/ic_menu_add" 
       android:title="@string/new_topic" 
       app:showAsAction="ifRoom"></item> 

    </menu> 

當我運行應用程序的動作條不顯示的問題,如果我按我的智能手機上的menù按鈕,它出現在一個醜陋的botton行中,只有標題。

正如您在Fragment類中所看到的,我插入了一行調試信息,但僅在按下menù按鈕但不在創建Activity時纔打印該信息。

我能做些什麼來解決它?每一個答案將非常感激!謝謝!

編輯----

至於問這是styles.xml文件

<resources> 

    <!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 

</resources> 
+2

向我們展示style.xml – Shahzeb

+0

將活動代碼也放在您正在充氣工具欄或操作欄的位置。可能你也有問題吧。 – androidnoobdev

+0

@Shahzeb我用styles.xml文件編輯了這篇文章。 – thebluebird

回答

0

將這個代碼在XML文件中

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="?attr/actionBarSize" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> 

及以下活動代碼保持片段

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
if (toolbar != null) { 
    setSupportActionBar(toolbar); 
} 

而我n您的風格添加

<item name="windowActionBar">false</item> 
<item name="windowNoTitle">true</item> 
+0

這改變了我的應用程序的東西,謝謝!現在,操作欄會出現,但會覆蓋頂部的列表。我想這是因爲我的活動XML只有一個FrameLayout持有FragmentList。可能是這個嗎? – thebluebird

+0

@thebluebird是的,如果你正在使用CoordinatorLayout將 app:layout_behavior =「@ string/appbar_scrolling_view_behavior」放在框架佈局中,或者如果你正在使用相對佈局使用below屬性。希望它會有所幫助。接受答案也是如此,可能對某個人有幫助。 – androidnoobdev

+0

謝謝。一切正常,現在:) – thebluebird