app:showAsAction vs android:showAsAction

老子叫甜甜 提交于 2019-11-27 15:59:17

问题


I am building an Android app and want to have a button always visible on the actionBar. I followed this guide and others, but none of them seem to solve my problem (although they are very close I guess...).

I have the package "app" and use app:showAsAction="always". No error is shown, but no button on the bar as well. When I change it to android:showAsAction="always" the button appears on the bar, but AndroidStudio tells me I should go for "app:showAsAction with appCompat...".

I have a custom theme with parent="@android:style/Theme.Holo.Light.DarkActionBar"> and for the bar itself: parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">.

Should I change something and get app:showAsAction working, or ignore AndroidStudio error message and go for android:showAsAction?


回答1:


This is the documentation of the lint rule:

AppCompatResource

Summary: Menu namespace

Priority: 5 / 10

Severity: Error

Category: Usability

When using the appcompat library, menu resources should refer to the showAsAction in the app: namespace, not the android: namespace.

Similarly, when not using the appcompat library, you should be using the android:showAsAction attribute.

I think the problem is that you are mixing Framework Activity and AppCompat menu.

You should use AppCompatActivity with AppCompat Action bar and app:showAsAction; or Activity with android:showAsAction.



来源:https://stackoverflow.com/questions/26412474/appshowasaction-vs-androidshowasaction

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!