Android 单击时,菜单选项不响应

Android 单击时,菜单选项不响应,android,menu,tabs,Android,Menu,Tabs,我的应用程序中有一个菜单,它工作正常,现在我添加了一个TabLayout,菜单选项不再响应用户的单击 以下是我的activity_main.xml代码: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas

我的应用程序中有一个菜单,它工作正常,现在我添加了一个
TabLayout
,菜单选项不再响应用户的单击

以下是我的activity_main.xml代码:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <include layout="@layout/toolbar"/>

    <android.support.design.widget.TabLayout
        android:id="@+id/tab"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabMode="fixed"
        app:tabGravity="fill">

    </android.support.design.widget.TabLayout>

</android.support.design.widget.AppBarLayout>

<android.support.v4.view.ViewPager
    android:id="@+id/viewPaper"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</android.support.v4.view.ViewPager>
onCreateOptionMenu

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    MenuItem menuItem = menu.findItem(R.id.action_search);
    searchView = (SearchView)MenuItemCompat.getActionView(menuItem);
    searchView.setOnQueryTextListener(this);
    return super.onCreateOptionsMenu(menu);
}
和选择的方法:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()){
        case R.id.refresh:
            //Check the internet connection
            if(Util.isConnected(this)){
              //  showProgress();
                //Check if there is not pending item
                sincronize(this);
                dbManager.borrar();
               new HomeFragment().getTarjetas();
            }else{
                Toast.makeText(this, "No hay conexion a internet.", Toast.LENGTH_LONG).show();
            }
            break;
    }
    return super.onOptionsItemSelected(item);
}
menu.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="developer.technologies.agilisa.acardmobile.MainActivity">

<item
    android:id="@+id/action_search"
    android:icon="@android:drawable/ic_menu_search"
    android:orderInCategory="100"
    android:title="@string/Search"
    app:showAsAction="always|collapseActionView"
    android:elevation="8dp"
    app:actionViewClass="android.support.v7.widget.SearchView"/>

<item
    android:id="@+id/refresh"
    android:title="@string/refresh"
    android:icon="@drawable/refresh"
    android:orderInCategory="200"
    app:showAsAction="always|collapseActionView"/>

<item
    android:id="@+id/cerrar"
    android:orderInCategory="10"
    app:showAsAction="never"
    android:title="@string/cerrar_session"/>

有人能帮我解决这个问题吗?

试试这些变化:

将根布局更改为
线性布局
协调器布局
——因为
框架布局
有时会使用其下项目的单击事件

1.in
onCreateOptions菜单()

2.在
onOptionsItemSelected()中添加
returntrue

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.refresh:
        // your code
        return true;    //add this
    default:
        return super.onOptionsItemSelected(item);
    }
}

我已经编辑了答案…另一个建议尝试将您的根
框架布局
更改为
协调布局
或任何其他布局,我使用LinearLayout替代,效果非常好。谢谢您。
 @Override
public boolean onCreateOptionsMenu(Menu menu) {
    //Your code
    return true;
}
 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.refresh:
        // your code
        return true;    //add this
    default:
        return super.onOptionsItemSelected(item);
    }
}