使用自定义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);
知道为什么吗?
答案 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代替操作栏?现在这是添加操作栏的推荐方法。