Android AppCompat库没有';I don’我好像工作不正常

Android AppCompat库没有';I don’我好像工作不正常,android,android-actionbar,android-actionbar-compat,Android,Android Actionbar,Android Actionbar Compat,我一直遵循这一点,开始使用ActionBarCompat。我认为我做的每件事都是对的,但它并没有发挥应有的作用。我试图在操作栏中添加一个刷新按钮,但它看起来不像一个独立的图标,而是出现在溢出菜单中 下面是它的外观: res/menu/activity.xml <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"

我一直遵循这一点,开始使用ActionBarCompat。我认为我做的每件事都是对的,但它并没有发挥应有的作用。我试图在操作栏中添加一个刷新按钮,但它看起来不像一个独立的图标,而是出现在溢出菜单中

下面是它的外观:

res/menu/activity.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >

<item 
    android:id="@+id/action_refresh"
    android:title="@string/action_refresh"
    android:icon="@drawable/ic_action_refresh"
    android:actionProviderClass="android.support.v7.widget.ShareActionProvider"
    android:showAsAction="ifRoom"/>

<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/action_settings"/>
startSupportActionMode(暂时为空)


我知道我可能完全错了,但我只想在我的操作栏中添加一个刷新按钮。

将菜单的xml更改为:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto" >

    <item 
        android:id="@+id/action_refresh"
        android:title="@string/action_refresh"
        android:icon="@drawable/ic_action_refresh"
        android:actionProviderClass="android.support.v7.widget.ShareActionProvider"
        app:showAsAction="ifRoom"/>

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        app:title="@string/action_settings"/>

</menu>


您使用的是
android:showAsAction=“ifRoom”
,但是您必须将
showAsAction
属性与自定义名称空间一起使用,在您的情况下,这是
app
,因此Compat ActionBar可以使用它。

您必须使用
app:actionProviderClass=“android.support.v7.widget.ShareActionProvider”
,因为这些属性在Android框架中不存在,所以由支持库定义。与
android:showAsAction
相同,您必须改用
app:showAsAction

startSupportActionMode(new ActionMode.Callback() {

        @Override
        public boolean onPrepareActionMode(ActionMode arg0, Menu arg1) {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public void onDestroyActionMode(ActionMode arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public boolean onCreateActionMode(ActionMode arg0, Menu arg1) {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public boolean onActionItemClicked(ActionMode arg0, MenuItem arg1) {
            // TODO Auto-generated method stub
            return false;
        }
    });
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto" >

    <item 
        android:id="@+id/action_refresh"
        android:title="@string/action_refresh"
        android:icon="@drawable/ic_action_refresh"
        android:actionProviderClass="android.support.v7.widget.ShareActionProvider"
        app:showAsAction="ifRoom"/>

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        app:title="@string/action_settings"/>

</menu>