操作项显示在操作栏的左侧

时间:2015-08-30 18:12:49

标签: android android-actionbar

使用自定义ActionBar和两个操作栏项目运行我的应用,在不同设备上以不同方式显示。在一台设备上,项目显示在操作栏徽标的左侧,而在另一台设备上,操作项目显示在右侧。

操作栏视图:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:background="@drawable/background"
  android:focusable="true">

<ImageView
    android:id="@+id/btn_slide"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:background="@null"
    android:scaleType="centerInside"
    android:src="@drawable/logo_advanced"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"/>
</RelativeLayout>

操作栏项:

  <?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">

<!-- logout action -->
<item android:id="@+id/action_logout"
    android:icon="@drawable/logo1"
    android:title="logout"
    android:showAsAction="never"
    compat:showAsAction="never"
    />

<!-- go to position-->
<item android:id="@+id/action_search_position"
    android:icon="@drawable/position_a"
    android:title="search_position"
    android:showAsAction="always"
    compat:showAsAction="always"
    />

活动回调:

 @Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main_activity_actions, menu);
    return super.onCreateOptionsMenu(menu);
}

我的主要活动的OnCreate中的动态操作栏初始化Activity

        ActionBar actionBar=getActionBar();
        View mActionBarView = getLayoutInflater().inflate(R.layout.action_bar, null);
        actionBar.setCustomView(mActionBarView);
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
  • 操作项徽标左侧的唯一设备是Galaxy 2(带有内置溢出菜单按钮的旧设备)。在这个设备上,WhatsApp和YouTube应用程序也是这样的(与具有正确外观的新设备相反),但另一方面,其他应用程序如Tinder和Gmail在所有设备上保持相同的外观。

知道为什么吗?

2 个答案:

答案 0 :(得分:0)

尝试使用此代码并从支持AppCompat ActionBar库扩展ActionBarActivity而不是Activity

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:app="http://schemas.android.com/apk/res-auto">
      <item android:id="@+id/action_search"
          android:icon="@drawable/ic_action_search"
          android:title="@string/action_search"
          app:showAsAction="always"  />
      <item android:id="@+id/action_compose"
          android:icon="@drawable/ic_action_compose"
          android:title="@string/action_compose" 
          app:showAsAction="always"/>
</menu>

答案 1 :(得分:0)

尝试使用Toolbar代替操作栏?现在这是添加操作栏的推荐方法。