How to get “?android:attr/actionBarSize” with Compatibility Library

扶醉桌前 提交于 2020-01-01 04:58:08

问题


I'm trying to use Fragments and ActionBar in a Android 2.2 project. There is some error when using "?android:attr/actionBarSize", how to get and set that value correctly?

Example:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    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_width="@dimen/titles_size"
            android:layout_height="match_parent" />

    <fragment class="com.example.android.hcgallery.ContentFragment"
            android:id="@+id/frag_content"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

</LinearLayout>

Error: No resource found that matches the given name (at 'layout_marginTop' with value '?android:attr/actionBarSize').


回答1:


You should just use:

android:layout_marginTop="?attr/actionBarSize"

See http://developer.android.com/training/basics/actionbar/overlaying.html

"...The one with the android: prefix is for versions of Android that include the style in the platform and the one without the prefix is for older versions that read the style from the Support Library..."

For me replacing

android:layout_marginTop="?android:attr/actionBarSize" 

with

android:layout_marginTop="?attr/actionBarSize" 

helped to launch app on Android 2.2 and Android 4.3 without any issues.




回答2:


I think the problem is that actionbar comes with android 3.0 and you are using 2.2. But there is a way to skip this by a extension called "actionbarsherlock".



来源:https://stackoverflow.com/questions/7760817/how-to-get-androidattr-actionbarsize-with-compatibility-library

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