A fim de usar Chip e ChipGroup, eu definir estilo de aplicação estende "Theme.MaterialComponents.Light.NoActionBar" int manifestests.xml, então eu definir Button "Android: background" attr, mas não é efeito! porque? e o que eu posso fazer ?
esse é meu estilo:
<style name="AppBaseTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/primary_material_light</item>
<item name="colorPrimaryDark">@color/header_color</item>
<item name="actionBarSize">48dp</item>
<item name="Android:screenOrientation">portrait</item>
<!--<item name="buttonStyle">@style/AntButton</item>-->
<!--<item name="materialButtonStyle">@style/AntButton</item>-->
<!--<item name="Android:button"></item>-->
<!--<item name="Android:progressTint">@color/ffc000</item>-->
<item name="colorAccent">@color/ffc000</item>
</style>
<style name="AntButton" parent="Android:Widget">
<item name="Android:background">@drawable/abc_btn_default_mtrl_shape</item>
<item name="Android:textAppearance">?android:attr/textAppearanceButton</item>
<item name="Android:minHeight">48dip</item>
<item name="Android:minWidth">88dip</item>
<item name="Android:focusable">true</item>
<item name="Android:clickable">true</item>
<item name="Android:gravity">center_vertical|center_horizontal</item>
<!--<item name="Android:colorButtonNormal">@color/white</item>-->
</style>
Eu tentei mudar buttonStyle e materialButtonStyle, mas não o efeito também!
este é o meu layout xml:
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<LinearLayout
Android:id="@+id/ll_popup"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom"
Android:background="@color/white"
Android:divider="@drawable/shape_divider_05dp"
Android:orientation="vertical"
Android:showDividers="beginning|middle">
<!--only can use backgroundTint to change background color-->
<Button
Android:id="@+id/item_popupwindows_Photo"
Android:layout_width="match_parent"
Android:layout_height="55dp"
Android:backgroundTint="@color/white"
Android:text="Pictrue"
Android:textColor="@color/c_666666"
Android:textSize="16sp" />
<!--background not effect !!-->
<Button
Android:id="@+id/item_popupwindows_cancel"
Android:layout_width="match_parent"
Android:layout_height="55dp"
Android:background="@color/white"
Android:text="cancel"
Android:textColor="@color/c_666666"
Android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
isso é resultado:
Porque eu usei Chip e ChipGroup no APP, eu tenho que tema do usuário estende MaterialComponents! você sabe como resolver isso? por favor me diga, obrigado!
nesta página Não é possível usar o Android: fundo com o botão dos novos componentes de material , o autor quer alterar o preenchimento padrão, mas eu quero mudar o backgroundDrawable, então, não funciona para mim.
Se você quiser uma verdadeira Button
, mas uma que possa modificar como a estrutura Button
(em vez da MaterialButton
), então você pode especificar explicitamente a versão da estrutura em seu arquivo de layout. Substitua isto:
<Button Android:id="@+id/item_popupwindows_cancel" ... />
com isso:
<Android.widget.Button
Android:id="@+id/item_popupwindows_cancel"
... />
Isso lhe dará o que diz na lata: um Android.widget.Button
, que deve responder ao estilo da maneira que você espera.
Da mesma forma, você pode usar um <androidx.appcompat.widget.AppCompatButton>
se quiser recursos de biblioteca de suporte, mas não recursos de componentes de material.
Neste caso particular, o LinearLayout
que prende seu segundo Button
parece ter uma cor de fundo branca. Isso significa que você não precisa especificar explicitamente um plano de fundo branco para o seu Button
; você pode apenas deixar o background do LinearLayout
aparecer.
Isso pode ser feito usando o estilo "Botão de texto" de MaterialButton
:
style="@style/Widget.MaterialComponents.Button.TextButton"