如何使用兼容库获取“?android:attr/actionBarSize”
Posted
技术标签:
【中文标题】如何使用兼容库获取“?android:attr/actionBarSize”【英文标题】:How to get "?android:attr/actionBarSize" with Compatibility Library 【发布时间】:2011-12-07 07:56:15 【问题描述】:我正在尝试在 android 2.2 项目中使用 Fragments 和 ActionBar。使用“?android:attr/actionBarSize”时出现错误,如何正确获取和设置该值?
例子:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_
android:layout_
android:id="@+id/frags">
<fragment class="com.example.android.hcgallery.TitlesFragment"
android:id="@+id/frag_title"
android:visibility="gone"
android:layout_marginTop="?android:attr/actionBarSize"
android:layout_
android:layout_ />
<fragment class="com.example.android.hcgallery.ContentFragment"
android:id="@+id/frag_content"
android:layout_
android:layout_ />
</LinearLayout>
错误:未找到与给定名称匹配的资源(位于“layout_marginTop”,值为“?android:attr/actionBarSize”)。
【问题讨论】:
您找到解决方案了吗?谢谢老兄! 【参考方案1】:你应该只使用:
android:layout_marginTop="?attr/actionBarSize"
见http://developer.android.com/training/basics/actionbar/overlaying.html
"...带有 android: 前缀的版本适用于以下 Android 版本 在平台中包含样式,没有前缀的样式是 对于从支持库中读取样式的旧版本..."
替我替换
android:layout_marginTop="?android:attr/actionBarSize"
与
android:layout_marginTop="?attr/actionBarSize"
帮助在 Android 2.2 和 Android 4.3 上启动应用程序没有任何问题。
【讨论】:
【参考方案2】:我认为问题在于actionbar 带有android 3.0 而您使用的是2.2。但是有一种方法可以通过一个名为“actionbarsherlock”的扩展来跳过这个。
【讨论】:
那么,你做了什么来解决这个问题?如果您找到了答案,请务必回答您的问题。它对未来的用户可能会派上用场。以上是关于如何使用兼容库获取“?android:attr/actionBarSize”的主要内容,如果未能解决你的问题,请参考以下文章
函数范围的静态变量如何导致与共享库中函数代码的未来使用不兼容