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

问题描述 投票:0回答:1

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

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且它们在这里工作正常。

java android android-toolbar
1个回答
0
投票

好像您正在使用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, return allow Android to work on it
       return false;
© www.soinside.com 2019 - 2024. All rights reserved.