在Google日历应用中,右上角有一个“完成”按钮
要重现这一点,是一个自定义视图,在右侧需要替换ActionBar中的默认值所需的TextView(使用.setCustomView()
)?如果是这样,这还会取代现有的标题,左侧的主页/后退按钮等吗?如果是这样,这是否意味着自定义视图需要再次包含这些?
规范方法是什么?
由于
答案 0 :(得分:7)
TooBar,并在其上添加菜单;
在您的布局中添加Toolbar
。
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/common_toolbar"
style="@style/ToolbarShadow"
/>
在您的活动中:
setSupportActionBar(toolbar);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_done, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_menu_done:
// do someing
break;
}
}
创建菜单(menu_done.xml)
<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=".MainActivity">
<item android:id="@+id/action_menu_done"
android:title="DONE"
android:orderInCategory="100"
android:icon="@mipmap/ic_done"
app:showAsAction="ifRoom"
/>
</menu>
答案 1 :(得分:4)
要重现这一点,是一个包含右侧TextView的自定义视图 需要替换ActionBar中的默认值(使用 .setCustomView())?
为什么要自定义视图?你应该能够用
实现同样的目标@Override
public boolean onCreateOptionsMenu(Menu menu) {
将Click事件报告给
@Override
public boolean onOptionsItemSelected(MenuItem item) {
修改
final MenuItem menuItem = menu.add(Menu.NONE, 1000, Menu.NONE, R.string.done);
MenuItemCompat.setShowAsAction(menuItem, MenuItem.SHOW_AS_ACTION_IF_ROOM);