2016-01-22 84 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秒后出现 –