Шерлок: для android: textAllCaps требуется уровень API 14 (текущий минимум 8)

#android #android-actionbar #actionbarsherlock

#Android #android-панель действий #actionbarsherlock

Вопрос:

Здравствуйте, я использую Sherlock библиотеку для достижения ActionBarTabs в приложении Android, но я вижу, что он устанавливает текст ActionBarTabs для всех заглавных букв, поэтому я делаю это, чтобы установить текст как обычный.

 <style name="My.TabText.Style" parent="@style/Widget.Sherlock.ActionBar.TabText">
    <item name="android:textAppearance">@android:style/TextAppearance.Medium</item>
    <item name="android:textColor">@android:color/white</item>
    <item name="android:textAllCaps">false</item>
    <!-- <item name="android:ellipsize">none</item> -->
    <item name="android:maxLines">1</item>
</style>
  

но я получаю сообщение об ошибке, что android:textAllCaps requires API level 14 (current min is 8) . Как я могу решить эту проблему, чтобы она работала для всех версий Android.

Заранее спасибо.

Ответ №1:

Вам нужно перейти в вашу библиотеку ActionBarSherlock, ту, которую вы реализуете в своем проекте как библиотеку, и перейти к этому классу.

 com.actionbarsherlock.internal.widget.CapitalizingButton
  

внутри этого класса вам нужно изменить эти строки.

 mAllCaps = appearance.getBoolean(R_styleable_TextAppearance_textAllCaps, true);


if (SANS_ICE_CREAM amp;amp; mAllCaps amp;amp; text != null)
  

Для

 mAllCaps = false;

if (SANS_ICE_CREAM amp;amp; text != null)
  

Что он делает, так это то, что он изменяет значение по умолчанию android:textAllCaps на false своего рода хак для класса

Комментарии:

1. Я сделал то же самое, что вы предложили, но все равно весь текст — заглавные буквы

2. @Williams попробуйте не изменять предложение if.. Верните туда mAllCaps

3. @Williams как насчет удаления всего предложения if и его содержимого.. Остается только предложение else.. Предложение If — это то, которое делает текст capslock

4. @Williams я так и знал, ахахаха. 1 этот пост, если это поможет :))

Ответ №2:

просто добавьте стиль в style-v14 папку и другой без этого значения в обычную style папку.

Комментарии:

1. «другой без этого значения в папке с обычным стилем» — но здесь снова это сделает мой текст ЗАГЛАВНЫМ, тогда как я могу сделать это так, чтобы текст не был прописным для всех версий Android

2. он не попадет в capital, потому что в предыдущих API не было таких методов setAllCaps() для вызова фреймворка.