2015-07-12 98 views
1

我已阅读这里相当多的条目,并Android的文件在此:http://developer.android.com/guide/topics/ui/actionbar.html缺少操作栏动作图标

我创建了一个新的应用程序从Android Studio中,设定的最低SDK(21)和目标SDK( 22)到Android 5(我不需要向后兼容性)。

这是我menu.xml文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <item android:id="@+id/undo" 
      android:icon="@drawable/undo" 
      android:title="@string/undo" 
      app:showAsAction="always" 
      /> 
    <item android:id="@+id/clear" 
      android:title="@string/clear"/> 
    ... 
</menu> 

这是我相当简单的onCreate:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    paintView = (PaintView) findViewById(R.id.view); 
    client = new GoogleApiClient.Builder(this).addApi(Wearable.API).build(); 
} 

我曾经尝试都总是和ifRoom,并确保撤消绘制,每完成DPI,但撤消按钮拒绝出现(在Nexus 4上测试,它有足够的空间用于至少几个图标......)!

我目前的解决方案是使用一个带有imageButton和onClick的customView(这个工作),但我想知道可能是什么问题。

+0

看到这个链接http://stackoverflow.com/questions/31356805/options-menu-action-bar/31356900#31356900 –

+0

谢谢。我使用android:showAsAction =“always”,它被标记为错误,正如建议使用app:showAsAction和xmlns:app =“http://schemas.android.com/apk/res-auto”命名空间。 –

回答

1

如果你不使用AppCompatActivity或任何建立在它之上(如Design Library),那么你不需要app:showAsAction - 只需使用android:showAsAction

如果您想忽略与忽略AppCompat`一起出现的lint错误,而是使用所有内容的框架版本(不推荐),则可以添加tools:ignore="AppCompatResource"

+0

我只是在设置新项目(并使用Android 5.0)时使用默认的Android Studio给我的东西。如果我使用android:showAsAction,它显示为错误,并建议使用app:showAsAction。 –

+0

是的,Android Studio假定您使用[AppCompat](https://developer.android.com/tools/support-library/features.html#v7-appcompat)和AppCompatActivity,因为它是所有应用程序的推荐模式(即使在没有需要AppCompat的设计库的5.0+设备上构建许多材料设计模式也要困难得多)。 – ianhanniballake

+0

如果我不关心5.0之前的兼容性,我该如何删除AppCompat?或者,如果AppCompat是必须的,那么我的问题/解决方案是什么? –