【问题标题】:How can I dismiss the Navigation Drawer to use the Back-home-icon button?如何关闭导航抽屉以使用返回主页图标按钮?
【发布时间】:2013-10-29 14:12:06
【问题描述】:

我也在使用带有搜索栏的操作栏,我需要像后退按钮一样使用操作栏图标:

但我也在使用抽屉式导航...如何关闭/隐藏/禁用导航抽屉菜单以使用后退按钮?

我的动作条码:

@Override
public boolean onCreateOptionsMenu(Menu menu){
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);

    this.getSupportActionBar().setDisplayShowCustomEnabled(true);
    this.getSupportActionBar().setDisplayShowTitleEnabled(false);

    this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    this.getSupportActionBar().setHomeButtonEnabled(true);

    LayoutInflater inflator = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View v;

    if(!searchView){
        v = inflator.inflate(R.layout.action_textview, null);
        ((TextView) v.findViewById(R.id.titleText)).setText(actionTitle);
        menu.getItem(0).setVisible(true);
        menu.getItem(2).setVisible(true);
        mainMenu = menu;

    }else{
        v = inflator.inflate(R.layout.action_searchview, null);
        actionSearch = (EditText) v.findViewById(R.id.searchText);
        actionSearch.setOnEditorActionListener(new OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView view, int actionId, KeyEvent event) {
                int result = actionId & EditorInfo.IME_MASK_ACTION;
                switch(result) {
                case EditorInfo.IME_ACTION_DONE:
                case EditorInfo.IME_ACTION_NEXT:
                case EditorInfo.IME_ACTION_GO:
                case 0:
                    ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(actionSearch.getWindowToken(), 0);
                    String temp = actionSearch.getText().toString();
                    searchFor(temp);
                    break;
                }
                return true;
            }
        });
        actionSearch.requestFocus();
        menu.getItem(0).setVisible(false);
        menu.getItem(2).setVisible(false);
    }
    this.getSupportActionBar().setCustomView(v);        

    return super.onCreateOptionsMenu(menu);
}

代码帮助:

  1. My Title 是一个只有 TextView 的自定义视图,用于自定义字体颜色和大小; (action_textview)
  2. 我的 SearchBar 使用只有一个 EditText 的自定义视图; (action_searchview)

【问题讨论】:

    标签: android navigation android-actionbar back drawer


    【解决方案1】:

    ActionBarDrawerToggle 你可以使用setDrawerIndicatorEnabled(Boolean enable) 的方法。或者,您可以设置ActionBar 显示选项。特别是标志DISPLAY_HOME_AS_UPLink to docs

    然后像往常一样处理点击事件。

    【讨论】:

    • 效果很好!谢谢! :)
    猜你喜欢
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    相关资源
    最近更新 更多