Я хочу, чтобы моя кнопка имела закругленные углы, такие как:
// Изображение взято с Google
Для достижения этой цели с тематикой материала в android для установки: shapeAppearanceSmallComponent
для угла rounded
.
Но установка shapeAppearanceSmallComponent
также влияет на все другие компоненты, такие как EditText
, поэтому теперь они также округляются.
Поэтому вместо того, чтобы установить shapeAppearanceSmallComponent
, я создал shapeMaterialOverlay
. Установите для этого наложения значение buttonStyle
и установите стиль кнопки в теме в качестве стиля кнопки по умолчанию.
Это работает, но только для кнопок по умолчанию. Если бы мне нужно было TextButton
как таковое:
<Button
...
style="@style/Widget.MaterialComponents.Button.TextButton"/>
TextButton
не будет разыграно. В качестве обходного пути я создал стиль MyTextButton
, который расширяется от TextButton
, и также установил там shapeOverlay
.
, так что теперь, если мне нужен TextButton
, я сделаю:
<Button
...
style="@style/Widget.MaterialComponents.Button.MyTextButton"/>
.
Я должен сделать это для всех других типов кнопок. Мне было интересно, является ли этот подход правильным, и если нет, кто-нибудь может подсказать мне, как правильно это сделать?
Большое спасибо.