ActionBarCompat - 在绘制打开/关闭时没有被调用?

时间:2013-10-15 23:36:23

标签: android android-actionbar-compat

ActionBar actionBar = getSupportActionBar();
mDrawerList.setAdapter(new ArrayAdapter<String>(this,R.layout.drawer_list_item, DrawTitles));
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) {
    public void onDrawerClosed(View view) {
        actionBar.setTitle("fd");
        invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
    }

    public void onDrawerOpened(View drawerView) {
        Log.e("KFF", "Draw Open");
        String mystring = "reewr";
        SpannableString s = new SpannableString(mystring);
        s.setSpan(new TypefaceSpan(MainActivity.this, "cubano"), 0, s.length(),
        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        actionBar.setTitle(s);
        invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
    }
};

无论我尝试什么,onDrawerOpenedClosed都没有被调用,尽管一切都按预期工作,包括操作栏切换图标和所有功能。

2 个答案:

答案 0 :(得分:2)

解决。

似乎这是微不足道的事情:

 mDrawerLayout.setDrawerListener(mDrawerToggle);

在我设置实际的DrawerToggle之前,它正在初始化并且没有抛出任何错误,因为变量是正确的类型,只是简单地为null。

要注意的事情。

答案 1 :(得分:0)

您必须使用 supportInvalidateOptionsMenu(),而不是 invalidateOptionsMenu()

This post by Gabriele Mariotti help you to use ActionBarCompat with the NavigationDrawer

小心不要丢失代码;)