繁体   English   中英

setDisplayHomeAsUpEnabled 在我的一项活动中不起作用,但在其他任何地方它都起作用

[英]setDisplayHomeAsUpEnabled not working in one of my Activities but everywhere else it does work

出于某种原因,这在我的一项活动中不起作用,但在其他任何地方,当我按下工具栏中的后退箭头时,它都可以正常工作,它会返回到我的 MainActivity。

import androidx.appcompat.widget.Toolbar;

//Initializing toolbar
mToolbar = findViewById(R.id.mToolbar);
setSupportActionBar(mToolbar);

if((getSupportActionBar() != null)){
    getSupportActionBar().setTitle(R.string.equalizerTitle);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_home_up);
}

显现

<activity
     android:name=".activities.EqualizerActivity"
     android:parentActivityName=".activities.MainActivity"
     android:screenOrientation="portrait"/>

编辑

此活动使用约束布局作为父项,但我不明白为什么会出现这种情况,所有其他活动都使用 RelativeLayout 并且它们在那里工作正常。

看起来您正在使用onOptionsItemSelected()方法来处理菜单按钮。 问题是“后退”按钮也是一种菜单按钮。

为了让 Android 知道您没有按钮的特定处理程序并且它应该由框架处理,您需要在不“使用”事件时通过返回false来让 Android 知道它。 根据文档:

onOptionsItemSelected()

boolean 返回 false 以允许正常菜单处理继续进行,true 以在此处使用它。

所以,你应该像这样:

public boolean onOptionsItemSelected(MenuItem item) {
       switch (item.getItemId()) {
               case YOUR_BUTTON:
                   // do something
                   return true;
       }
       // By default, allow Android to work on it
       return false;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM