Как получить "? Android: attr / actionBarSize" с библиотекой совместимости

Я пытаюсь использовать Fragments и ActionBar в проекте Android 2.2. Есть некоторая ошибка при использовании «? Android: attr / actionBarSize», как правильно установить и установить это значение?

Пример:

<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> 

Ошибка: ресурс не найден, который соответствует указанному имени (в 'layout_marginTop' со значением '? Android: attr / actionBarSize').

Solutions Collecting From Web of "Как получить "? Android: attr / actionBarSize" с библиотекой совместимости"

Вы должны просто использовать:

 android:layout_marginTop="?attr/actionBarSize" 

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

«… тот, у которого есть андроид: префикс для версий Android, которые включают стиль в платформу, и тот, у которого нет префикса, для более старых версий, которые читают стиль из библиотеки поддержки …»

Для меня замена

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

с

 android:layout_marginTop="?attr/actionBarSize" 

Помогли запустить приложение на Android 2.2 и Android 4.3 без каких-либо проблем.

Я думаю, проблема заключается в том, что в панели действий есть Android 3.0, и вы используете 2.2. Но есть способ пропустить это путем расширения, называемого «actionbarsherlock».