Почему мой текст кнопки принудительно задействован для ВСЕХ CAPS на Lollipop?

В моем приложении «Tide Now WA», которое я недавно проверил на совместимость с использованием нового планшета Nexus 9 (Lollipop – API 21).

Он пишет текст кнопки. Это приложение правильно пишет текст с помощью Android 2.3 и Android 4.0. Т.е. смешанный капитал и строчные буквы.

Когда такое же приложение запускается на моем Nexus 9, все буквы в тексте заглавные.

FWIW мой манифест содержит следующее утверждение:

uses-sdk android:minSdkVersion="10" android:targetSdkVersion="14"

Могу ли я исправить это в своем коде или это ошибка в ОС, спасибо

У меня нет идеи, почему это происходит, но есть три тривиальных попытки сделать:

  1. Использовать android:textAllCaps="false" в вашем layout-v21

  2. Программно изменить метод преобразования кнопки. mButton.setTransformationMethod(null);

  3. Проверьте свой стиль для Allcaps

Примечание : public void setAllCaps (boolean allCaps) android: textAllCaps доступны из API версии 14.

Вот что я сделал в своих ценностях / themes.xml

    

Это можно зафиксировать в коде приложения, установив TransformationMethod кнопки, например

 mButton.setTransformationMethod(null); 

Установите android: textAllCaps = “false”. Если вы используете стиль appcompat, убедитесь, что textAllCaps предшествует стилю. В противном случае стиль переопределит его. Например:

 android:textAllCaps="false" style="@style/Base.TextAppearance.AppCompat" 

добавьте эту строку в стиле

  false 

Lollipop default поставляется с «textAllCaps true», поэтому вам нужно вручную сделать его ложным

Добавьте android: textAllCaps = “false” в , это он.

этот работает … только в вашем коде в вашем нижнем коде добавьте это:

 android:textAllCaps="false" 

он должен деактивировать букву с буквами, которую U пытается напечатать маленьким.

Существует более простой способ, который работает для всех кнопок, просто измените внешний вид кнопок в вашей теме, попробуйте следующее:

в значениях -21 / styles.xml

     

PS: рекомендуется следовать принципам материального дизайна, вы должны показывать заглавный текст в кнопках, http://www.google.com/design/spec/components/buttons.html

Использование android.support.v7.widget.AppCompatButton в макете XML позволит вам избежать необходимости иметь макет-21 или программно изменять что-либо. Естественно, это также будет работать с библиотекой AppCompat v7.

  

Надеюсь это поможет.

В Android Studio IDE вы должны щелкнуть значок «Фильтр», чтобы отобразить экспертные свойства. Затем вы увидите свойство textAllCaps . Проверьте его, затем снимите флажок.

Вы можете добавить android:textAllCaps="false" к кнопке.

Текст кнопки может быть преобразован в верхний регистр по теме вашего приложения, которая применяется ко всем кнопкам. Проверьте файлы тем / стилей для установки атрибута android:textAllCaps .

Хорошо, просто наткнулся на это. Кнопки в Lollipop выдают все прописные буквы, а шрифт сбрасывается до «нормального». Но в моем случае (Android 5.02) он работал в одном макете правильно, но не другой !?

Изменение API-интерфейсов не помогло.
Для всех кепок требуется минимум API 14, а шрифт все равно сбрасывается до «нормального».

Это связано с тем, что стиль Android Material Styles заставляет изменить стили, если нет определенного (поэтому он работал в одном из моего макета, а не в другом, потому что я определил стиль).

Таким образом, легкое исправление заключается в определении стиля в манифесте для каждого вида деятельности, который в моем случае был справедливым:
Android: тема = “@ андроид: стиль / Theme.NoTitleBar.Fullscreen”
(надеюсь, что это поможет кому-то, спали бы меня пару часов прошлой ночью)

Если вы пришли сюда, потому что ваш текст кнопки facebook появляется во всех шапках, просто добавьте этот android:textAllCaps="false" в ваш XML-файл. Это сработало для меня.

Если вы используете appcompat-v7 , вы можете подclassифицировать AppCompatButton и setSupportAllCaps(false) , а затем использовать этот class для всех ваших кнопок.

 /** * Light extension of {@link AppCompatButton} that overrides ALL CAPS transformation */ public class Button extends AppCompatButton { public Button(Context context, AttributeSet attrs) { super(context, attrs); setSupportAllCaps(false); } public Button(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); setSupportAllCaps(false); } } 

См. AppCompatButton # setSupportAllCaps (boolean) Android-документы.

Я не знаю, почему ответ @ user1010160 получил рейтинг 0. Я бы дал ему +1, если бы у меня было достаточно репутации.

Поскольку мое приложение предназначено для API менее 14, и я не хотел добавлять код в свою программу, я не нашел решения, пока не прочитаю его ответ. Он сказал, что даже если вы сделали то, что необходимо в стилях приложения, это не сработает, если вы не добавите стиль в свою деятельность, и там вы установите для textAllCaps значение false.

Недостаточно иметь стиль для активности (у моей активности был стиль), потому что стиль может по умолчанию использовать свойство AllCaps. Вы также должны явно указать в свойстве это свойство на false.

Теперь я использую его как в приложении, так и в разделе «Действия» файла манифеста.

Interesting Posts

Обновить иконку Cache Without Rebooting

Как создать несколько экземпляров MS Excel 2013 в Win7 x64?

Если мы не будем использовать обои на рабочем столе, это увеличит производительность окон?

Назначение выравнивания памяти

Ошибка неактивности: инвариантное нарушение: тип элемента недействителен: ожидается строка (для встроенных компонентов) или class / функция, но получен: объект

Изменение реестра для увеличения тайм-аута графического процессора, Windows 7

Не удается разрешить метод getMap ()

Формат номера до 2 знаков после запятой

Как использовать отдельный stream для выполнения HTTP-запросов

Поместите кнопки внизу экрана с помощью LinearLayout?

Запуск командного файла в области уведомлений

Операции classического набора для java.util.Collection

Какие символы разрешены для операторов haskell?

Есть ли способ синхронизировать iPhone без iTunes?

Проблема с новым жестким диском на старом компьютере и обновление BIOS

Давайте будем гением компьютера.