Android上的ActionBarDrawerToggle问题
伙计们,我正在为我的工作开发一个私人应用程序,但我有一个未知的问题,我有点迷茫,不明白这是怎么回事,我试图设置一个简单的ActionBarDrawerToggle,但它不起作用,它甚至显示和取消设置图标,而不是我设置的,所以,请问,有人能帮我吗?如果我不先解决这个问题,我就无法继续Android上的ActionBarDrawerToggle问题,android,Android,伙计们,我正在为我的工作开发一个私人应用程序,但我有一个未知的问题,我有点迷茫,不明白这是怎么回事,我试图设置一个简单的ActionBarDrawerToggle,但它不起作用,它甚至显示和取消设置图标,而不是我设置的,所以,请问,有人能帮我吗?如果我不先解决这个问题,我就无法继续 public class MainActivity extends Activity { private String[] titulos; private DrawerLayout NavDrawe
public class MainActivity extends Activity {
private String[] titulos;
private DrawerLayout NavDrawerLayout;
private ListView NavList;
private ArrayList<Item_objct> NavItms;
private TypedArray NavIcons;
private ActionBarDrawerToggle mDrawerToggle;
private CharSequence mDrawerTitle;
private CharSequence mTitle;
NavigationAdapter NavAdapter;
//Implementacion del ListView
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Drawer Layout
NavDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
//Lista
NavList = (ListView) findViewById(R.id.lista);
//Declaramos el header el caul sera el layout de header.xml
View header = getLayoutInflater().inflate(R.layout.header, null);
//Establecemos header
NavList.addHeaderView(header);
//Tomamos listado de imgs desde drawable
NavIcons = getResources().obtainTypedArray(R.array.navigation_iconos);
//Tomamos listado de titulos desde el string-array de los recursos @string/nav_options
titulos = getResources().getStringArray(R.array.nav_options);
//Listado de titulos de barra de navegacion
NavItms = new ArrayList<Item_objct>();
//Agregamos objetos Item_objct al array
//Pedidos
NavItms.add(new Item_objct(titulos[0], NavIcons.getResourceId(0, -1)));
//Gastos
NavItms.add(new Item_objct(titulos[1], NavIcons.getResourceId(1, -1)));
//Productos
NavItms.add(new Item_objct(titulos[2], NavIcons.getResourceId(2, -1)));
//Clientes
NavItms.add(new Item_objct(titulos[3], NavIcons.getResourceId(3, -1)));
//Ganancias
NavItms.add(new Item_objct(titulos[4], NavIcons.getResourceId(4, -1)));
//Capital
NavItms.add(new Item_objct(titulos[5], NavIcons.getResourceId(5, -1)));
//Declaramos y seteamos nuestrp adaptador al cual le pasamos el array con los titulos
NavAdapter= new NavigationAdapter(this,NavItms);
NavList.setAdapter(NavAdapter);
//Siempre vamos a mostrar el mismo titulo
mTitle = mDrawerTitle = getTitle();
// Declaramos el mDrawerToggle y las imgs a utilizar
mDrawerToggle = new ActionBarDrawerToggle(
this, /*Host Activity*/
NavDrawerLayout, /*DrawerLayout Object*/
R.drawable.ic_drawer, /*Icono de navegacion*/
R.string.app_name, /* Nombre de aplicacion*/
R.string.hello_world /* "Close drawer" description*/
) {
/**
* Called when a drawer has settled in a completely closed state
*/
public void onDrawerClosed(View view) {
Log.e("Cerrado Completo", "!!");
}
/**
* Called when a drawer has settled in a completely open state
*/
public void onDrawerOpened(View drawerView) {
Log.e("Apertura Completa", "!!");
}
};
//Establecemos que mDrawerToggle declarado anteriormente sea el DrawerListener
NavDrawerLayout.setDrawerListener(mDrawerToggle);
//Establecemos que el ActionBar muestre el boton Home
getActionBar().setDisplayHomeAsUpEnabled(true);
这是我的主要活动课,我只是不知道为什么我想你忘了添加一些东西: 1.-覆盖以下活动方法以与状态同步抽屉切换:
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
}
2.-此外,您需要告诉ActionBar必须启用home图标。例如,在OnCreate中调用以下命令:
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
我希望这对你有帮助
如果这对您没有帮助,请检查:这是一个很好的指南
祝你好运你可以让Android Studio通过New->activity为你创建一个完全工作的导航栏活动。是的,你是对的,但我还没有准备好使用这种方式,我是初学者,而且那些自动创建的类有很多方法,我不知道它们的用途,所以现在,我更喜欢自己开发方法,而不是使用那些模板谢谢你这么多BamsBamx肯定问题出在那些未声明的方法上,我声明了它们,它就行了。多谢各位much@MaToXz请点击屏幕左侧的勾号接受答案好吗?我将非常感谢你lot@BamsBamx我已经重写了onPostCreate和onConfigurationChanged方法,但在创建活动后,我的汉堡包图标不起作用。我从左边滑动抽屉后,汉堡图标开始按预期工作。有什么想法吗?@IvanBajalovic你调用过Toolbar.setNavigationOnClickListener吗?@BamsBamx我也尝试过使用mDrawerToggle.SetToolbar NavigationClickListener,但没有触发此事件。