【发布时间】:2017-06-28 12:23:21
【问题描述】:
我将此抽屉布局用作导航抽屉。如何将项目单击侦听器设置为其中的项目。例如,我的抽屉布局中有 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);
}
【问题讨论】:
-
在抽屉项中使用 RecyclerView
-
你在 xml 中没有抽屉的导航视图吗?
-
不,我没有导航视图。
-
查找对您有帮助的 NavigationDrawer 教程。
标签: android navigation-drawer onclicklistener drawerlayout