在ActionBar中添加取消和保存按钮

时间:2019-06-25 21:58:32

标签: android android-actionbar

当我处于允许向用户插入数据的活动中时,我想在应用程序的操作栏中添加保存和取消按钮,其方式与显示Trello应用程序的方式相同:example trello < / p>

我需要这些按钮仅在特定活动中显示,而不在应用程序的其他活动中显示。我不知道该怎么实现。

2 个答案:

答案 0 :(得分:2)

在这里,setHomeAsUpIndicator正在创建关闭btn,菜单正在创建完成的btn。 希望这能回答查询。

  

设置工具栏

<android.support.design.widget.AppBarLayout
    android:id="@+id/my_appbarLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:elevation="0dp"
    android:theme="@style/AppTheme.AppBarOverlay"
    app:elevation="0dp">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:layout_margin="0dp"
        app:layout_scrollFlags="snap"
        app:navigationIcon="@drawable/ic_dismiss_24dp"
        app:popupTheme="@style/AppTheme.PopupOverlay"/>

</android.support.design.widget.AppBarLayout>
  

设置操作栏关闭btn

toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar supportActionBar = getSupportActionBar();

if (supportActionBar != null) {
    supportActionBar.setDisplayHomeAsUpEnabled(true);
    supportActionBar.setDisplayShowHomeEnabled(true);
}
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_dismiss_24dp);
  

设置活动内菜单的功能

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_page, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    switch (id) {
        case R.id.action_done:
            // done btn functionalities goes here
            break;
        case android.R.id.home:
            //dismiss btn functionality goes here
            break;
    }
    return super.onOptionsItemSelected(item);
}
  

在res / menu内设置菜单文件(menu_page)

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


    <item
        android:id="@+id/action_done"
        android:icon="@drawable/ic_done_24dp"
        android:orderInCategory="100"
        android:title="@string/done"
        app:showAsAction="always" />

</menu>

答案 1 :(得分:0)

您可以自定义自己的工具栏,并在ManifestFile中将主题设置为无ActionBar 并在每个Activity中将工具栏作为组件插入