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()
}
};
无论我尝试什么,onDrawerOpened
或Closed
都没有被调用,尽管一切都按预期工作,包括操作栏切换图标和所有功能。
答案 0 :(得分:2)
解决。
似乎这是微不足道的事情:
mDrawerLayout.setDrawerListener(mDrawerToggle);
在我设置实际的DrawerToggle之前,它正在初始化并且没有抛出任何错误,因为变量是正确的类型,只是简单地为null。
要注意的事情。
答案 1 :(得分:0)
您必须使用 supportInvalidateOptionsMenu(),而不是 invalidateOptionsMenu()。
This post by Gabriele Mariotti help you to use ActionBarCompat with the NavigationDrawer
小心不要丢失代码;)