在 ActionBar 中添加取消和保存按钮
Add cancel and save buttons in ActionBar
当我处于允许向用户插入数据的 activity 中时,我想在我的应用程序的操作栏中添加保存和取消按钮,其方式与示例显示的 Trello 应用程序相同:
我需要这些按钮仅在特定 activity 中显示,而不是在应用程序的其他活动中显示。我不知道如何实现这个。
您可以自定义您自己的工具栏,并在 ManifestFile 中将主题设置为无 ActionBar
并在每个 Activity 中插入工具栏作为组件
此处 setHomeAsUpIndicator 正在创建关闭按钮,菜单正在创建完成按钮。
希望这能回答问题。
Set the toolbar
<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>
Set the actionbar dismiss 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);
Set the functions inside your activity for menu
@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);
}
Set the menu file(menu_page) inside res/menu
<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>
当我处于允许向用户插入数据的 activity 中时,我想在我的应用程序的操作栏中添加保存和取消按钮,其方式与示例显示的 Trello 应用程序相同:
我需要这些按钮仅在特定 activity 中显示,而不是在应用程序的其他活动中显示。我不知道如何实现这个。
您可以自定义您自己的工具栏,并在 ManifestFile 中将主题设置为无 ActionBar 并在每个 Activity 中插入工具栏作为组件
此处 setHomeAsUpIndicator 正在创建关闭按钮,菜单正在创建完成按钮。 希望这能回答问题。
Set the toolbar
<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>
Set the actionbar dismiss 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);
Set the functions inside your activity for menu
@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);
}
Set the menu file(menu_page) inside res/menu
<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>