Как настроить стиль кнопки материала AppCompat?
Я использую тему AppCompat, и я хочу установить атрибут minHeight на моих кнопках:
<style name="Theme.MyTheme" parent="Theme.AppCompat">
<item name="android:buttonStyle">@style/MyButtonStyle</item>
</style>
<style name="MyButtonStyle" parent="...?">
<item name="android:minHeight">60dp</item>
</style>
нет Widget.AppCompat.Button
стиль для установки в качестве родителя для MyButtonStyle
. Если я использую android:Widget.Button
, то все мои кнопки выглядят как старый дерьмовый стиль. Я пробовал различные другие темы AppCompat, такие как TextAppearance.AppCompat.Button
, но они не работают.
оставляя родительскую тему для стиля кнопки, кнопка также не будет стилизована правильно.
как я могу настроить по умолчанию Theme.AppCompat
buttonStyle
?
4 ответов
вы можете Base.MyButtonStyle
расширения android:Widget.Holo.Button
на API 14+ (в res/values-v14/styles.xml
) и android:Widget.Material.Button
на API 21+ (в res/values-v21/styles.xml
. Этот стиль будет меняться в соответствии с версией системы устройства. Поместите свои модификации платформы здесь.
MyButtonStyle
расширения Base.MyButtonStyle
и определить android:minHeight
здесь (в res/values/styles.xml
). Это относится ко всем платформам.
вы кнопки, то можете использовать стиль MyButtonStyle
.
в этом примере предполагается, что минимальный SDK 14.
и да, нет стиля кнопки appcompat-v7 (ну, по крайней мере, пока нет).
редактировать
это предполагает, что вы в порядке с кнопкой Holo на платформах старше Lollipop. Он чувствует себя ненавязчивым, и если вы можете обойтись без ряби, это должно быть просто прекрасно. Если вы хотите рябь, я предлагаю Вам google для сторонней библиотеки кнопок lollipop.
чтобы ответить на мой собственный вопрос, он появляется AppCompat фактически не поддерживает на Button
виджет в настоящее время:
AppCompat обеспечивает аналогичное поведение на более ранних версиях Android для подмножества UI виджеты:
- все, что предусмотрено панелью инструментов AppCompat (режимы действий и т. д.)
- полей EditText
- счетчик
- флажок
- переключатель
- переключатель (используйте новый андроид.поддержка.В7.штучка.SwitchCompat)
- CheckedTextView
единственным обходным путем, который я вижу, было бы воссоздать стиль кнопки материала из исходного кода Android, задача, которая выходит за рамки моего желания.
Пользовательский Стиль Кнопки С AppCompat + 22 в твоем стиле.в XML
<style name="Button.Tinted" parent="Widget.AppCompat.Button">
<item name="colorButtonNormal">YOUR_TINT_COLOR</item>
<item name="colorControlHighlight">@color/colorAccent</item>
<item name="android:textColor">@android:color/white</item> </style>
в свой макет.в XML
<Button
android:id="@+id/but_next"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/but_continue"
android:theme="@style/Button.Tinted" />
удалить android:
<style name="Theme.MyTheme" parent="Theme.AppCompat">
<item name="buttonStyle">@style/MyButtonStyle</item>
</style>