В моем приложении «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"
Могу ли я исправить это в моем коде или это ошибка в ОС, спасибо
android
android-5.0-lollipop
android-button
android-styles
user1644002
источник
источник
Ответы:
Я понятия не имею, почему это происходит, но есть три тривиальные попытки:
Используйте
android:textAllCaps="false"
в вашемlayout-v21
Программно изменить метод преобразования кнопки.
mButton.setTransformationMethod(null);
Проверьте свой стиль для Allcaps
Примечание :
public void setAllCaps(boolean allCaps)
,android:textAllCaps
являются доступны с API версии 14.источник
<item name="android:textAllCaps">false</item>
в своем определении стиляВот что я сделал в своих ценностях / themes.xml
источник
<item name="textAllCaps">false</item>
.buttonStyle
наandroid:buttonStyle
android:textAllCaps="false"
(я использую android studio 3.0)Это можно исправить в коде приложения, установив TransformationMethod кнопки, например
источник
Установите android: textAllCaps = "false". Если вы используете стиль appcompat, убедитесь, что textAllCaps предшествует стилю. В противном случае стиль переопределит его. Например:
источник
добавить эту строку в стиле
источник
этот работает .... просто в вашем коде в нижнем коде добавьте этот:
это должно деактивировать заглавные буквы, которые U пытается набрать small.
источник
Lollipop по умолчанию поставляется с «textAllCaps true», поэтому вы должны вручную сделать его ложным
источник
Добавьте в
<Button>
тег android: textAllCaps = "false" .источник
Есть более простой способ, который работает для всех кнопок, просто измените внешний вид кнопок в вашей теме, попробуйте это:
в значениях-21 / styles.xml
PS: рекомендуется следовать принципам дизайна материала, текст должен отображаться заглавными буквами, http://www.google.com/design/spec/components/buttons.html.
источник
Использование android.support.v7.widget.AppCompatButton в XML-макете позволит вам избежать необходимости иметь layout-21 или программно изменять что-либо. Естественно, это также будет работать с библиотекой AppCompat v7.
Надеюсь это поможет.
источник
Используйте эту строку android: textAllCaps = "false" в вашем xml
источник
В Android Studio IDE необходимо щелкнуть значок «Фильтр», чтобы отобразить экспертные свойства. Тогда вы увидите
textAllCaps
собственность. Проверьте это, затем снимите флажок.источник
Вы можете добавить
android:textAllCaps="false"
к кнопке.Текст кнопки может быть преобразован в верхний регистр темой приложения, которая применяется ко всем кнопкам. Проверьте темы / файлы стилей для установки атрибута
android:textAllCaps
.источник
Ява:
Котлин:
XML:
Стили:
В макете:
источник
Если вы приехали сюда из-за того, что текст вашей кнопки «Фейсбук» отображается заглавными буквами, просто добавьте его
android:textAllCaps="false"
в свой XML-файл. Это сработало для меня.источник
ОК, просто столкнулся с этим. Кнопки в Lollipop отображаются заглавными буквами И шрифт сбрасывается на «нормальный». Но в моем случае (Android 5.02) он работал в одном макете правильно, а не в другом !?
Смена API не сработала.
Установка всех заглавных букв требует минимального API 14, и шрифт все еще сбрасывается на «нормальный».
Это потому, что стили материалов Android изменяют стили, если они не определены (поэтому они работали в одном из моих макетов, а не в другом, потому что я определил стиль).
Таким образом, легко исправить это определить стиль в манифесте для каждого действия, которое в моем случае было просто:
android: theme = "@ android: style / Theme.NoTitleBar.Fullscreen"
(надеюсь, это поможет кому-то, спасло бы меня пару часов прошлой ночью)
источник
Если вы используете
appcompat-v7
, вы можете создать подклассAppCompatButton
иsetSupportAllCaps(false)
, а затем использовать этот класс для всех ваших кнопок.См. AppCompatButton # setSupportAllCaps (логическое) документы для Android.
источник
По умолчанию, кнопка в Android предоставляет все заглавные буквы. Если вы хотите, чтобы текст кнопки был в нижнем или смешанном регистре, вы можете отключить
textAllCaps
флаг, используяandroid:textAllCaps="false"
источник
Я не знаю, почему ответ @ user1010160 получил оценку 0. Я бы дал +1, если бы мне хватило репутации.
Поскольку мое приложение разработано для API менее 14, и я не хотел добавлять код в свою программу, я не нашел решения, пока не прочитал его ответ. Он сказал, что, несмотря на то, что вы сделали то, что необходимо в стилях приложения, оно не будет работать, если вы не добавите стиль в свою деятельность и не установите для textAllCaps значение false.
Недостаточно иметь стиль для действия (у моего действия был стиль), потому что стиль может по умолчанию иметь свойство AllCaps. Вы также должны явно установить в этом упражнении это свойство в false.
Теперь он у меня есть как в приложении, так и в частях Activity файла манифеста.
источник
Еще одна программная альтернатива Kotlin:
mButton.transformationMethod = null
источник