我看到了类似的问题,但答案毫无用处。这就是我发布它的原因。
以下是我在FragmentDrawer.java
设置抽屉的方法。
public void setUp(int fragmentId, DrawerLayout drawerLayout, Toolbar toolbar) {
containerView = getActivity().findViewById(fragmentId);
mDrawerLayout = drawerLayout;
toolBar = toolbar;
onDrawerOpen();
mDrawerToggle.setDrawerIndicatorEnabled(false);
mDrawerToggle.setHomeAsUpIndicator(R.drawable.drawer);
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerLayout.post(new Runnable() {
@Override
public void run() {
mDrawerToggle.syncState();
}
});
mDrawerToggle.setToolbarNavigationClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
onDrawerOpen();
}
});
}
这是onDrawerOpen
方法。
private void onDrawerOpen() {
mDrawerToggle = new ActionBarDrawerToggle(getActivity(), mDrawerLayout,
toolBar, R.string.drawer_open, R.string.drawer_close) {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
getActivity().invalidateOptionsMenu();
}
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
getActivity().invalidateOptionsMenu();
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, slideOffset);
toolBar.setAlpha(1 - slideOffset / 2);
}
};
}
从MainActivity
拨打电话。
drawerFragment.setUp(R.id.fragment_navigation_drawer, mDrawer, mToolbar);
答案 0 :(得分:1)
首次通过调用ActionBarDrawerToggle
初始化onDrawerOpen()
后,您调用setDrawerIndicatorEnabled(false)
,这将禁用指标,并将所有点击结果路由到导航点击监听器。首次点击后,再次调用onDrawerOpen()
,重新初始化切换,然后按预期工作。
目前还不清楚您要做什么,但如果您只想要标准切换行为,请将切换初始化移至setup()
方法,然后移除setDrawerIndicatorEnabled()
和{{1}电话。
setToolbarNavigationClickListener()
答案 1 :(得分:0)
在Xml文件中,您必须更改NavigationView可见性
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
android:visibility="visible"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer">
</android.support.design.widget.NavigationView>