当前位置: 首页 > 知识库问答 >
问题:

使用AppCompat-V-21工具栏小部件在右侧设置NavigationDrawer图标

薛浩言
2023-03-14

我一直在使用AppCompact-V21中提供的最新工具栏小部件和导航抽屉进行材料设计。

我关心的是如何将导航抽屉图标设置到工具栏的右侧。虽然我可以通过设置android:layout\u gravity=“right”从右侧打开导航抽屉,但导航图标仍然显示在工具栏的左侧。

当使用旧的动作栏时,我可以用按钮将自定义动作栏包装在右侧,带有自定义抽屉图标,单击自定义导航抽屉图标打开/关闭抽屉。

  1. 使用工具栏在右侧设置导航抽屉图标的方法是什么
  2. 如何为其创建自定义视图

共有3个答案

朱鹏
2023-03-14

如果你知道它的工作原理,你可以很容易地做到这一点。大多数android抽屉使用应用程序的home按钮作为抽屉按钮,这个按钮的重力不能改变,你所要做的就是给抽屉按钮分配另一个按钮,你在动作栏中自己创建的按钮(菜单按钮),你给它一个图标和一个动作,在选项项选中

if (item.getItemId() == android.R.id.home) {
    if(mDrawerLayout.isDrawerOpen(mLinearLayout)) {
        mDrawerLayout.closeDrawer(mmLinearLayout);
    }
    else {
    // open the drawer
    }
}

你将拥有与此大致相同的代码,更改android。R、 按我上面提到的按钮id回家。

子车才捷
2023-03-14

我想将ActionBarDrawerToggle从左向右移动,我正在使用appcompat 21支持库。我还没有找到解决办法。似乎我们需要按照Abhinav Puri的建议在actionbar/toolbar中创建一个自定义项。

您说您不知道如何将自定义视图添加到工具栏,希望这能帮助您或解决此问题的任何人:

		toolbar = (Toolbar) findViewById(R.id.toolbar);

		if (toolbar != null) {
			setSupportActionBar(toolbar);
		}

		actionBar = getSupportActionBar();
		actionBar.setDisplayHomeAsUpEnabled(true);
		actionBar.setHomeButtonEnabled(true);
		actionBar.setDisplayShowHomeEnabled(true);
		actionBar.setDisplayShowCustomEnabled(true);

		ActionBar.LayoutParams layoutParams = new ActionBar.LayoutParams(
				LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
		layoutParams.gravity = Gravity.RIGHT;
		actionBar.setCustomView(
				getLayoutInflater().inflate(R.layout.custom_top_bar, null),
				layoutParams);
		
		ImageButton rightToggle =(ImageButton) toolbar.findViewById(R.id.rightToggle);
		
		rightToggle.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				if (mDrawerLayout.isDrawerOpen(Gravity.RIGHT)) {
					mDrawerLayout.closeDrawer(Gravity.RIGHT);
				} else {
					mDrawerLayout.openDrawer(Gravity.RIGHT);
				}
			}
		});
公冶泰
2023-03-14

好的,要自定义工具栏并设置自己的导航按钮,您可以将自己的imagebutton添加到工具栏:

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:minHeight="?attr/actionBarSize"
    android:layout_height="?attr/actionBarSize"
    android:layout_width="match_parent" >

    <ImageButton
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="end"
       android:onClick="backButtonHandler"
       android:background="@drawable/ic_launcher" />

</android.support.v7.widget.Toolbar>

然后,可以在activity类中定义backButtonHandler(视图v),并根据需要添加功能。

 类似资料:
  • ap.setOptionButton(OPTION | items, CALLBACK) 设置导航栏右侧按钮。 OPTION 参数说明 名称 类型 必填 描述 onClick Function 否 监听 optionButton 点击事件 reset Boolean 否 重置到系统默认按钮,默认为 false。当为 true 时,忽略其他参数 preventDefault Boolean 否 是否

  • 问题内容: 情况1: 我想在默认WordPress主题的标题中的照片上方放置徽标徽标 我的解决方案:在照片前添加徽标,然后在其上 进行 设置, 而无需 设置任何属性: HTML: CSS: 案例2: 另一个示例是水平多级菜单,其宽度为100%,并带有布局,但不支持 它适用于IE6-7,Firefox1.5,不适用于Firefox 0.8等。 您认为这是一个很好的解决方案,还是非标准的破解程序,可以

  • 我从原来的ActionBar更改为AppCompat Toolbar和setSupportActionBar(工具栏)。当我使用getSupportActionBar()和setDisplayHomeAsUpEnable(true)作为后箭头时,单击永远不会调用onOptionsItemSelected或任何其他侦听器方法。 我必须为它实现一些特殊的侦听器吗?在一切顺利之前。 编辑:初始化操作栏:

  • 我编写了一个代码,将活动的标题向右移动。下面是java代码。我正在使用getSupportActionBar()。 这是我想要的工具栏的图片 这是用于主页的xml代码。 实际上,我希望页面的标题位于上面的操作栏的右侧。如何做到这一点。 我得到的错误是这样的: 07-14 00:03:03.763 3038-3038/com。实例H体育。Practicession E/AndroidRuntime:

  • 我正在尝试新的工具栏组件,但导航图标出现了一些问题。我想实现一个用于反向导航的自定义图标: 在我的清单中,我为我的活动设置了一个父级: 我这样声明工具栏: 然后在“活动”中,我将工具栏配置为: 后退图标不是我用setNavigationIcon()设置的!无论我给这个方法的绘图是什么,导航图标总是后面的箭头。 我试图删除清单中的父关联,但唯一的效果是(显然)阻止按钮返回。 相反,如果我想要默认的后

  • 这里有一个关于使用方法关闭一组轴给定侧的刻度的问题。我想更改和属性在默认情况下关闭在我的,但我不知道如何做到这一点,作为文件的刻度部分处理在和方面的东西。我错过了什么?