[英]How do I set clickListener to drawer items
我把這個抽屜布局當作導航抽屜。 如何將項目單擊偵聽器設置為其中的項目。 例如,我在抽屜布局中有Home,Maps和About,我想在每個項目點擊上打開新片段。
private DrawerLayout mDrawerLayout;
private ActionBarDrawerToggle mActionBarDrawerToggle;
private ScrimInsetsFrameLayout mScrimInsetsFrameLayout;
private void init_navigator(){
// Navigation Drawer
mDrawerLayout = (DrawerLayout) findViewById(R.id.main_activity_DrawerLayout);
mDrawerLayout.setStatusBarBackgroundColor(getResources().getColor(R.color.primaryDark));
mScrimInsetsFrameLayout = (ScrimInsetsFrameLayout) findViewById(R.id.main_activity_navigation_drawer_rootLayout);
mActionBarDrawerToggle = new ActionBarDrawerToggle
(
this,
mDrawerLayout,
toolbar,
R.string.navigation_drawer_opened,
R.string.navigation_drawer_closed
)
{
@Override
public void onDrawerSlide(View drawerView, float slideOffset)
{
// Disables the burger/arrow animation by default
super.onDrawerSlide(drawerView, 0);
}
};
mDrawerLayout.setDrawerListener(mActionBarDrawerToggle);
if (getSupportActionBar() != null)
{
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
}
mActionBarDrawerToggle.syncState();
// Navigation Drawer layout width
int possibleMinDrawerWidth = UtilsDevice.getScreenWidth(this) -
UtilsMiscellaneous.getThemeAttributeDimensionSize(this, android.R.attr.actionBarSize);
int maxDrawerWidth = getResources().getDimensionPixelSize(R.dimen.navigation_drawer_max_width);
mScrimInsetsFrameLayout.getLayoutParams().width = Math.min(possibleMinDrawerWidth, maxDrawerWidth);
// Set the first item as selected for the first time
getSupportActionBar().setTitle(R.string.toolbar_title_home);
}
你應該有這樣的東西:
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {}
和
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
switch (id){
case R.id.nav_dashboard:
return true;
case R.id.nav_maps:
return true;
case R.id.nav_user_management:
return true;
case R.id.nav_view:
return true;
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.main_activity_DrawerLayout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
在創建新項目時嘗試導航抽屜活動以獲得更好的導航抽屜。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.