android– 使用导航抽屉实现UP按钮 *** 作

android– 使用导航抽屉实现UP按钮 *** 作,第1张

概述题我正在使用AndroidStudio模板中的导航抽屉.我想在我的一些片段中使用UP按钮(箭头)插入“汉堡”按钮.我使用AppCompatActivity.我使用此代码显示UP按钮箭头:publicvoidUseUpButton(booleanvalue){ActionBaractionBar=getSupportActionBar();if(value){

我正在使用Android Studio模板中的导航抽屉.我想在我的一些片段中使用UP按钮(箭头)插入“汉堡”按钮.
我使用AppCompatActivity.

我使用此代码显示UP按钮箭头:

public voID UseUpbutton(boolean value) {    Actionbar actionbar = getSupportActionbar();    if (value) {        actionbar.setdisplayHomeAsUpEnabled(false);        toggle.setDrawerIndicatorEnabled(false);        actionbar.setdisplayHomeAsUpEnabled(true);        actionbar.setdisplayShowHomeEnabled(true);    } else {        toggle.setDrawerIndicatorEnabled(true);    }}

试过的变种:

但是我无法点击这个按钮.我试过一些方法:

使用onoptionsItemSelected

public boolean onoptionsItemSelected(MenuItem item) {    Log.d("WTF", "menu");    switch (item.getItemID())    {        case androID.R.ID.home:            getFragmentManager().popBackStack();            return true;        default:            return super.onoptionsItemSelected(item);    }}

我添加了getSupportActionbar().setHomebuttonEnabled(true);到我的Activity :: onCreate,但当我按下向上按钮时,onoptionsItemSelected没有被调用,当我按下菜单项时,它正常工作.

使用ActionbarToggle OnClickListener

DrawerLayout drawer = (DrawerLayout) findVIEwByID(R.ID.drawer_layout);toggle = new ActionbarDrawerToggle(            this, drawer, toolbar, R.string.navigation_drawer_open,                   R.string.navigation_drawer_close);drawer.setDrawerListener(toggle);toggle.syncState();toggle.setToolbarNavigationClickListener(new VIEw.OnClickListener(){        @OverrIDe        public voID onClick(VIEw v) {        } });

但是这种方法也没有按下Up按钮.

结论:

那么,我怎样才能抓住向上按钮按下事件?

解决方法:

几天前我在某个地方发现了这个……

在我的代码中,我初始化ActionbarDrawerToggle.它有一些构造函数,但我对此感兴趣:

1

public ActionbarDrawerToggle(Activity activity, DrawerLayout drawerLayout,        @StringRes int openDrawerContentDescRes,        @StringRes int closeDrawerContentDescRes) {    this(activity, null, drawerLayout, null, openDrawerContentDescRes,            closeDrawerContentDescRes);}

2

public ActionbarDrawerToggle(Activity activity, DrawerLayout drawerLayout,        Toolbar toolbar, @StringRes int openDrawerContentDescRes,        @StringRes int closeDrawerContentDescRes) {    this(activity, toolbar, drawerLayout, null, openDrawerContentDescRes,            closeDrawerContentDescRes);}

看一看:第二个构造函数有工具栏工具栏参数.

如果你想处理UP button事件,请不要使用第二个CONSTUCTOR并先使用.

例:

toggle = new ActionbarDrawerToggle(            this,            drawer,            R.string.navigation_drawer_open,            R.string.navigation_drawer_close);getSupportActionbar().setHomebuttonEnabled(true);

setHomebuttonEnabled很重要,没有这个你就看不到汉堡包或者Up按钮了.

总结

以上是内存溢出为你收集整理的android – 使用导航抽屉实现UP按钮 *** 作全部内容,希望文章能够帮你解决android – 使用导航抽屉实现UP按钮 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1115135.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存