动作栏中的“完成”按钮?

时间:2015-10-20 08:34:36

标签: android

在Google日历应用中,右上角有一个“完成”按钮

enter image description here

要重现这一点,是一个自定义视图,在右侧需要替换ActionBar中的默认值所需的TextView(使用.setCustomView())?如果是这样,这还会取代现有的标题,左侧的主页/后退按钮等吗?如果是这样,这是否意味着自定义视图需要再次包含这些?

规范方法是什么?

由于

2 个答案:

答案 0 :(得分:7)

TooBar,并在其上添加菜单;

  1. 在您的布局中添加Toolbar

    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/common_toolbar"
        style="@style/ToolbarShadow"
        />
    
  2. 在您的活动中:

    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;
    
        }
    }
    
  3. 创建菜单(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);