检查操作栏中是否可见返回按钮或菜单按钮

3
如何检查操作栏中的左按钮是菜单按钮还是返回按钮?为启用返回按钮,我们使用以下代码:
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true); 

我想知道在特定时间哪个按钮是可用的。我尝试使用堆栈计数,但对我没有起作用。
菜单图标

enter image description here

返回图标

enter image description here

谢谢


有解决方案吗? - Vikrant_Dev
这个问题有任何解决方案吗,@Harish @Vikrant? - Saurabh Padwekar
@SaurabhPadwekar 请检查我的答案 - Mateen Chaudhry
3个回答

0
你是指这个吗?
设置ID:
public boolean onCreateOptionsMenu(Menu menu) { 
        super.onCreateOptionsMenu(menu); 
        menu.add((int groupId, int itemId, int order, charsequence title) .setIcon(drawable ID)
        return true; 
    }

获取ID:

public boolean onOptionsItemSelected(MenuItem item) { 
    super.onOptionsItemSelected(item); 
    switch(item.getItemId()) 
    { 
    case  Menu.First+1  : 
        break; 
    case  Menu.First+2 : 
        break; 
    } 
    return true; 
}

我想知道操作栏中左侧的按钮是菜单按钮还是返回按钮。 - Harish
你是如何创建你的操作栏并设置项目的? - panda
操作栏如下:actionBar = getAppActionBar(); 使用onCreateOptionsMenu创建菜单项。 - Harish

0
好的,我已经找到解决方案了,这是 Kotlin 版本。
  val toolbar = findViewById<Toolbar>(R.id.toolbar)
  val backButtonVisible = toolbar.navigationIcon != null 

-1
如果您正在使用导航抽屉,则可以通过了解导航抽屉的状态(打开或关闭)来执行此操作。
假设您已在XML中定义了一个DrawerLayout:
DrawerLayout mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 

if(mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
  //drawer is open
}

如果你的抽屉是打开的,那么在操作栏上会有返回图标;否则,在操作栏上会有菜单图标。


1
我需要知道它是菜单还是返回,如果我没记错的话,它要么是打开的,要么是关闭的。 - Harish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接