compat:showAsAction =“always”不起作用

时间:2015-09-18 17:19:21

标签: android android-fragments android-menu

我想知道,如果有人可以帮我跟进:

private Class<? extends C> variable;

行compat:showAsAction =“always”不起作用,它被忽略。我在片段中使用它,更具体地说,我使用import android.app.Fragment;。我总是得到“三点”选项菜单。

我从未在这里发布任何内容,到目前为止我总能找到一些解决方案。但是这一次,我只找到了解决方法告诉我使用compat:...或android:...解决方案,但它在我的情况下不起作用。

这是我的build.gradle实际模块(如果重要的话):

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:compat="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_summary"
        android:icon="@drawable/ic_summary"
        android:title="@string/action_summary"
        compat:showAsAction="always" />

    <item
        android:id="@+id/action_filter"
        android:icon="@drawable/ic_filter"
        android:title="@string/action_filter"
        compat:showAsAction="always" />

</menu>

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

如果您使用的是AppCompat库,最好不要使用android.app.Fragment,而是使用android.support.v4.app.Fragment

(注意:您可以将android.app.Fragment与AppCompat库一起使用。但是,我遇到了因不使用android.support.v4.app.Fragment而导致的一些问题。

不要忘记,当您使用android.support.v4.app.Fragment时,您还必须通过android.support.v4.app.FragmentManagerFragmentMangager用作getSupportFragmentManager()

答案 1 :(得分:0)

如果您想在Fragment中获取菜单,请使用并删除父活动中的菜单方法:

@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);
}

@Override public boolean onOptionsItemSelected(MenuItem item) {
   return super.onOptionsItemSelected(item);
}

答案 2 :(得分:-2)

我已经知道这个问题。 使用app:showAsAction="always"代替compat。