我在我的應用中實施了Navigation drawer
。一切工作正常。當我點擊Hamburger icon
導航抽屜沒有打開時,我遇到了一個問題。之後,如果我滑動,則導航抽屜會成功打開。向後滑動後,我可以成功關閉導航抽屜。現在漢堡包圖標點擊正常,我可以通過點擊圖標打開導航抽屜。漢堡包圖標點擊未在抽屜佈局中工作
所以我採取的Log
幫助這裏是一些代碼
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawers();
Log.e("drawer 1","clicked");
return;
} else {
Log.e("drawer 2","clicked");
drawer.openDrawer(GravityCompat.START);
}
}
});
private void setUpNavigationView() {
int[][] states = new int[][]{
new int[]{android.R.attr.state_enabled}, // enabled
new int[]{-android.R.attr.state_enabled}, // disabled
new int[]{-android.R.attr.state_checked}, // unchecked
new int[]{android.R.attr.state_pressed},
new int[]{android.R.attr.state_selected} // pressed
};
int[] colors = new int[]{
Color.BLACK,
Color.RED,
Color.GREEN,
Color.BLUE,
Color.WHITE
};
ColorStateList csl = new ColorStateList(states, colors);
navigationView.setItemTextColor(csl);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.nav_home:
drawer.closeDrawers();
break;
case R.id.nav_fav:
if (sharedPreferences.contains("favHotelId")) {
searchNearHotel("favHtl");
}
else
Toast.makeText(getApplicationContext(),"No favorite hotels",Toast.LENGTH_SHORT).show();
break;
case R.id.nav_sign_out: drawer.closeDrawers();
break;
}
if (menuItem.isChecked()) {
menuItem.setChecked(false);
} else {
menuItem.setChecked(true);
}
menuItem.setChecked(true);
loadHomeFragment();
return true;
}
});
final ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.openDrawer, R.string.closeDrawer) {
@Override
public void onDrawerClosed(View drawerView) {
// Code here will be triggered once the drawer closes as we dont want anything to happen so we leave this blank
super.onDrawerClosed(drawerView);
invalidateOptionsMenu();
}
@Override
public void onDrawerOpened(View drawerView) {
// Code here will be triggered once the drawer open as we dont want anything to happen so we leave this blank
super.onDrawerOpened(drawerView);
drawer.openDrawer(drawerView);
Log.e("drawer 3","clicked");
invalidateOptionsMenu();
}
};
//Setting the actionbarToggle to drawer layout
drawer.setDrawerListener(mDrawerToggle);
mDrawerToggle.syncState();
//calling sync state is necessary or else your hamburger icon wont show up
View header = navigationView.getHeaderView(0);
tv_email = (TextView) header.findViewById(R.id.drawer_userName);
drawer_userNameEmail = (TextView)
}
}
當我點擊圖標首次在public void onDrawerOpened(View drawerView)
方法心不是叫這就是爲什麼我的抽屜裏是不開放。導航抽屜上的之後,該方法已成功調用。
請幫我找出問題所在。
顯示對應於第一次點擊烏爾日誌詳細信息。 –
請提供關於導航抽屜的完整代碼 –
第一次只點擊'抽屜2點擊'顯示在日誌和刷卡後'抽屜3點擊'也顯示在日誌@Neo –