1
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()
    }
};

无论我尝试什么,都不会调用theonDrawerOpened或 the ,尽管一切都按预期工作,包括操作栏切换图标和所有功能。Closed

4

2 回答 2

2

解决了。

似乎这是一件小事:

 mDrawerLayout.setDrawerListener(mDrawerToggle);

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

有什么要注意的。

于 2013-10-19T00:57:55.373 回答
0

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

Gabriele Mariotti 的这篇文章帮助您将ActionBarCompat 与 NavigationDrawer一起使用

并注意不要丢失代码;)

于 2013-10-18T12:22:27.417 回答