#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()
для вызова фреймворка.