簡體   English   中英

如何將clickListener設置為抽屜項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM