android中的actionbar对支持lib版本有不同的行为吗?

时间:2015-07-04 18:42:54

标签: android-actionbar

我发现在 build.grade 中是否提供了不同的支持lib:

compile 'com.android.support:appcompat-v7:22.0.0'  
compile 'com.android.support:support-v4:22.0.0'

compile 'com.android.support:appcompat-v7:20.0.0'   
compile 'com.android.support:support-v4:20.0.0',

动作栏有不同的行为。

  • app图标未显示在v22.0.0
  • 菜单未显示 在溢出菜单中,在v20中它会。

在活动中,我们有以下代码。

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
       getMenuInflater().inflate(R.menu.menu_main, menu);
       return super.onCreateOptionsMenu(menu);
   } 

v20.0.0的行为是我想要的。 如果我想v22.0.0与v20.0.0具有相同的行为,我应该怎么做?

这是因为在android 13中,动作栏上的某些行为发生了变化吗?

1 个答案:

答案 0 :(得分:0)

您必须在onCreateOptionsMenu()中返回true,否则菜单将无法显示。这就是为什么你没有看到它,因为super方法返回false。这没有改变,并且有充分的记录。

菜单未显示的其他可能原因:

  • 您的XML菜单资源不使用AppCompat的包前缀属性,而是使用" android:"而不是属性。

  • 您在布局中使用了工具栏但未将其注册为主ActionBar。

  • 此版本AppCompat中的错误(但我对此表示怀疑)。此日期的最新版本为22.2.0。

从v21开始,AppCompat实现了Material设计行为,而在Material设计中,默认情况下不会显示应用程序图标。