我需要在操作栏的后箭头右侧放置一个按钮(主页)。要求是捕获左箭头(通常是主页按钮)并执行我工作的onBackPressed。现在我如何在左箭头的右侧添加一个按钮,这样当我点击它时,我可以在onOptionsItemSelected上捕获它并让它执行Home函数。我尝试创建一个相对布局,其中包含一个图像视图作为测试,然后在使用actionBar.setCustomView(v)进行视图设置之后设置它;但它似乎确实出现了。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_gravity="fill_horizontal">
<ImageButton
android:id="@+id/bookmark_home_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/common_google_signin_btn_icon_dark" />
</RelativeLayout>
最终创建了一个自定义操作栏,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageButton
android:id="@+id/bookmark_actionbar_left_btn"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@null"
android:src="@drawable/navigation_back" />
<ImageButton
android:id="@+id/bookmark_actionbar_logo_btn"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="@null"
android:paddingLeft="20dp"
android:src="@drawable/app_launcher" />
</LinearLayout>
然后在onCreate
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.bookmark_actionbar);
ImageButton goBackBtn = (ImageButton) findViewById(R.id.bookmark_actionbar_left_btn);
goBackBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onBackPressed();
}
});
ImageButton goHomeBtn = (ImageButton) findViewById(R.id.bookmark_actionbar_subrosa_btn);
goHomeBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
NavUtils.navigateUpFromSameTask(BookmarkList.this);
}
});
答案 0 :(得分:0)
所以我最终使用了自定义ActionBar - 请参阅上面的更新