2016-01-22 75 views
1

當我跟着這個教程中建立一個滑動Tab應用程序: http://www.android4devs.com/2015/01/how-to-make-material-design-sliding-tabs.html更改的菜單項滑動的拉

現在我的問題: 我怎樣才能改變我的菜單圖標在我的動作條,當我改變到另一個標籤有關的例子嗎?在Tab1中,您可以看到一個搜索圖標,當您切換到Tab2時,它會變得不可見,但會出現一個添加圖標。

我的代碼至今:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 

    menu.add("menu_search").setIcon(R.drawable.ic_search_white_24dp).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 
    menu.add("menu_contact").setIcon(R.drawable.ic_add_white_24dp).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 

    return super.onCreateOptionsMenu(menu); 
} 

回答

0

可以在片段定義菜單,而不是活動的:

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

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.menu_main, menu); 
    super.onCreateOptionsMenu(menu, inflater); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case R.id.menu_item_1: 
     // handling menu item click 
     break; 
    } 
    return super.onOptionsItemSelected(item); 
} 

當然的每個片段都會有自己的菜單與相應的圖標。

這是一個例子(menu_main.xml):

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

    <item 
     android:id="@+id/menu_item_1" 
     android:showAsAction="ifRoom" 
     android:title="@string/ic_menu_label" 
     android:icon="@drawable/ic_menu_icon" 
     android:visible="true" 
     app:showAsAction="ifRoom" /> 

</menu> 
+0

我怎樣才能讓我的菜單對象呢? –

+0

@AhmetKazaman我添加了用於管理點擊菜單項和菜單xml的代碼 – thetonrifles

+0

好的,謝謝你的工作,但它有點慢。一些性能竅門?它在2-3秒後出現 –