gpt4 book ai didi

java - 如何使我的 ActionBar DrawerToggle 按钮正常工作?

转载 作者:行者123 更新时间:2023-12-01 10:35:53 25 4
gpt4 key购买 nike

enter image description here

public class MainActivity extends ActionBarActivity {
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,R.drawable.ic_launcher, R.string.drawer_open, R.string.drawer_close) {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);

invalidateOptionsMenu();
}

@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
Log.d(TAG, "onDrawerClosed: " + getTitle());

invalidateOptionsMenu();
}
};

mDrawerLayout.setDrawerListener(mDrawerToggle);
}

这里我使用了DrawerToggle并为其定义了一个函数,但它不起作用。

我应该在 invalidateOptionsMenu() 方法中定义什么?

最佳答案

用于启用操作栏切换按钮

// enabling action bar app icon and behaving it as toggle button
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.drawer, //nav menu toggle icon
R.string.app_name // nav drawer open - description for accessibility
) {
public void onDrawerClosed(View view) {
// calling onPrepareOptionsMenu() to show action bar icons
invalidateOptionsMenu();
super.onDrawerClosed(view);
}

public void onDrawerOpened(View drawerView) {
// calling onPrepareOptionsMenu() to hide action bar icons
invalidateOptionsMenu();
super.onDrawerOpened(drawerView);
}
};

mDrawerLayout.setDrawerListener(mDrawerToggle);


/**
* When using the ActionBarDrawerToggle, you must call it during
* onPostCreate() and onConfigurationChanged()...
*/

@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
//mDrawerLayout.openDrawer(mDrawer);
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Pass any configuration change to the drawer toggls
mDrawerToggle.onConfigurationChanged(newConfig);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// toggle nav drawer on selecting action bar app icon/title
/*if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}*/
switch (item.getItemId()) {
case android.R.id.home:
if(mDrawerLayout.isDrawerOpen(mDrawer))
{
mDrawerLayout.closeDrawer(mDrawer);
}
else {
mDrawerLayout.openDrawer(mDrawer);
}
break;

default:
break;
}
return super.onOptionsItemSelected(item);

}

/* *
* Called when invalidateOptionsMenu() is triggered
*/
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// if nav drawer is opened, hide the action items
//boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawer);
//menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
return super.onPrepareOptionsMenu(menu);
}

关于java - 如何使我的 ActionBar DrawerToggle 按钮正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34735900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com