我使用下面的抽屉布局。所以我的片段附加到工具栏下面的框架布局。当我显示片段时,我将home按钮从humburger更改为箭头:
drawerToggle.setDrawerIndicatorEnabled(b);
getSupportActionBar().setDisplayHomeAsUpEnabled(show);
问题是-当我单击箭头按钮时,活动或片段中没有onOptionsItemSelec的事件。如果我没有使用抽屉oggle.set抽屉指示器启用(b);箭头按钮将打开抽屉菜单。如何修复这种行为?
布局
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:orientation="vertical">
<include
android:id="@+id/toolbar"
layout="@layout/tool_bar" />
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/navigation_holder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start|center_vertical"
android:background="@color/bg_drawer"
android:clickable="true"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="138dip"
android:layout_marginLeft="24dp"
android:layout_marginTop="11dip"
android:adjustViewBounds="true"
android:src="@drawable/ic_drawer_logo" />
<ListView
android:id="@+id/navigation_drawer"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginTop="8dp"
android:layout_weight="1"
android:choiceMode="singleChoice"
android:divider="@drawable/drawer_divider"
android:dividerHeight="1dip"
android:footerDividersEnabled="false"
android:listSelector="@drawable/selector"
android:paddingLeft="24dip"
android:paddingRight="24dip" />
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
导航抽屉设置
public void setUpNavigationDrawer(){
int width = getResources().getDisplayMetrics().widthPixels * 3 / 4;
DrawerLayout.LayoutParams params =
(android.support.v4.widget.DrawerLayout.LayoutParams) navigationHolder.getLayoutParams();
params.width = width;
navigationHolder.setLayoutParams(params);
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
drawerToggle = new ActionBarDrawerToggle(
this, mDrawerLayout, mToolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close
){
@Override
public void onDrawerOpened(View drawerView){
super.onDrawerOpened(drawerView);
if(!mUserLearnedDrawer){
mUserLearnedDrawer = true;
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(
mContext
);
sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).apply();
}
invalidateOptionsMenu();
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset){
super.onDrawerSlide(drawerView, slideOffset);
}
@Override
public void onDrawerClosed(View drawerView){
super.onDrawerClosed(drawerView);
if(needToChangePage){
onNavigationDrawerItemSelected(
(int) drawerView.getTag()
);
}
needToChangePage = false;
}
};
if(!mUserLearnedDrawer){
mDrawerLayout.openDrawer(navigationHolder);
}
mDrawerLayout.post(
new Runnable(){
@Override
public void run(){
drawerToggle.syncState();
}
}
);
mDrawerLayout.setDrawerListener(drawerToggle);
}
使用碎片时,在Android导航抽屉图像和插入符号之间切换尝试了从这里开始的方法,但结果相同
要收听点击android. R.id.home当抽屉菜单设置它的必要添加工具栏侦听器
drawerToggle.setToolbarNavigationClickListener(
new View.OnClickListener(){
@Override
public void onClick(View v){
getSupportFragmentManager().popBackStackImmediate();
}
}
);
此侦听器将只发,如果抽屉oggle.setDrawerIndicator启用(false);
有人能告诉我如何创建活动到这个主要活动,导航抽屉将看到在所有他们?我需要使用这个特定的MainActivity代码。我不需要使用碎片,只要3个简单的活动将添加到这个抽屉。 NavDrawer布局:
实际上,我正在我的应用程序中使用新的架构组件,并且我已经设置了导航组件。我有一个导航抽屉,我想用它。我已经设置好了,但我面临一些问题: 1-抽屉不会自动关闭。菜单正常工作并导航到正确的位置,但导航后不会关闭。我必须添加一个目的地ChangedListener才能自己关闭它。 在代码实验室里,抽屉自动关闭,我真的不明白为什么。 2-向上按钮打开抽屉。当我导航到非顶级片段时,菜单图标变为向上箭头,但当
我在将与和组合时遇到布局问题。 问题是,NavigationDrawer及其内容隐藏在工具栏后面。我已经做了很多研究,尝试了很多重组,但没有一个“解决方案”能解决我的问题。 在这个Webm小视频中可以找到一个演示:https://www.dropbox.com/s/i5zfc2x2ts2fws7/navigation_drawer_stackoverflow32523188.webm?dl=0 基
有人知道如何实现一个滑动菜单像一些顶级应用程序今天吗? 其他堆栈溢出问题还没有关于如何做到这一点的答案,所以我正在尝试收集尽可能多的信息来帮助其他人。我在下面提到的所有应用程序都很好地实现了幻灯片菜单。 只有点击左上角的G+标识,才能从第一屏进入第二屏。注意,整个屏幕从它的位置移动,并且get被推到屏幕的右侧(包括操作栏)。要回到第一个屏幕,您可以将右侧滑回焦点,也可以再次单击G+图标。 您可以使
我有一个程序,我想实现一个滑动菜单。 首先,我尝试了导航抽屉导航抽屉,这是我想要的,因为: 1)它不推屏幕,它覆盖它2)当我点击按钮上左它打开菜单3)当我尝试点击屏幕上的另一个 我不想有一个按钮向上左边,我希望用户点击一个按钮从屏幕和每次不同的滑动菜单出现。 我也尝试了jfeinstein10滑动菜单,但它不覆盖屏幕,它只是推开它,他们告诉我,这是不可能改变的。但另一方面,它是容易的,在某些方面更
问题内容: 我正在创建一个包含导航抽屉活动的应用程序。我正在主屏幕中加载不同的片段。现在,当我当时必须调用Fragment时,它可以正常工作,但是当我想调用某种服务(如call,图像选择器)时,我添加了setNavigationItemSelectedListener,它工作正常,但其他所有片段现在都无法加载。 问题答案: 当您打电话时,是说您要处理NavigationView中的单击事件,并根据