主页右侧的ActionBar按钮

时间:2017-12-22 20:46:22

标签: android android-actionbar

我需要在操作栏的后箭头右侧放​​置一个按钮(主页)。要求是捕获左箭头(通常是主页按钮)并执行我工作的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);
        }
    });

1 个答案:

答案 0 :(得分:0)

所以我最终使用了自定义ActionBar - 请参阅上面的更新