Android Button 배경색이 변하지 않음
이 안드로이드 프로젝트에서 기본 버튼 스타일을 만듭니다. my styles.xml
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:buttonStyle">@style/ButtonStlye123</item>
</style>
<style name="ButtonStlye123" parent="android:style/Widget.Button">
<item name="android:textSize">19dp</item>
<item name="android:layout_margin">8dp</item>
<item name="android:padding">8dp</item>
<item name="android:textColor">@color/ColorDivider</item>
<item name="android:background">@color/ColorAccent</item>
</style>
내 단추가 조각난 거지
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btnLogin"
android:id="@+id/btn_login"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:theme="@style/ButtonStlye123"
android:onClick="login" />
안드로이드 스튜디오의 미리보기에서는 내가 원하는 것처럼 보이지만 장치에서 앱을 실행하면 배경색이 회색("기본 버튼 색")으로 표시됩니다.styles.xml에서 텍스트 색상을 변경하면 다음과 같습니다.
<item name="android:textColor">@color/ColorPrimary</item>
사용자 지정 스타일이 로드되고 있으므로 버튼에 대해 다른 색상(텍스트에 대해 작동하는)을 시도했지만 변경되지 않습니다.
내 배경색이 로딩되지 않는 이유는 무엇입니까?
대신 AppCompactButton을 사용해 보십시오.
<Button>
사용하다
<androidx.appcompat.widget.AppCompatButton>
그것이 효과가 있을 것입니다.
업데이트: 01/06/2021
위의 내용이 이전 안드로이드 버전에서는 작동하지 않는다는 것을 알게 되었습니다.소재 디자인용 버튼 사용
<Button app:backgroundTint="@color/green">
Androidx.appcompat를 사용해 주시기 바랍니다.위젯.Button 대신 AppCompat Button.
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/button_id_Login"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_below="@id/textInnputLayout_editText_id_password"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="@string/Login_screen_button_text"
android:background="@drawable/login_button_style"
android:textAllCaps="false">
</androidx.appcompat.widget.AppCompatButton>
사용하고 있을 수도 있습니다.targetSdkVersion 30
소재테마
해결책은 변화입니다.theme.xml
스타일.
부터
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
로.
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
대체 대상
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
재료 구성요소를 AppCompat으로 변경하는 것이 좋습니다.
저는 당신의 속성을 '테마'에서 '스타일'로 바꿔야 한다고 생각합니다.이 파일들은 서로 다른 용도로 사용되기 때문에 서로 다르게 사용됩니다.
Style은 개별 뷰 또는 구성요소에 속성을 할당하는 데 사용되며, Theme은 전체 앱에 속성을 적용하는 데 사용됩니다.
그래서 대신에 이것을 시도해보세요.
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/btnLogin"
android:id="@+id/btn_login"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
<!-- This attribute was changed -->
android:style="@style/ButtonStlye123"
android:onClick="login" />
또한 이러한 다양한 유형의 XML을 적절한 파일(styles.xml 및 mes.xml - 모두 동일한 파일에 유지하는 대신)로 분할해야 합니다.이것은 관례이며 코드 컴파일이나 실행에는 영향을 주지 않지만 코드 스타일로 권장됩니다.
이 특성 사용backgroundTint
도움이 될 겁니다저한테는 효과가 있어요.예:
android:backgroundTint="@color/md_orange_800"
Android Studio Version 4.1 이상(Beta)을 사용하는 경우, temes.xml 파일을 값으로 확인합니다.
<style name="Theme.NavaFlashLightV4" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
</style>
속성을 @로 변경합니다.
<style name="Theme.NavaFlashLightV4" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@null</item> <!-- HERE -->
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
</style>
Android Studio의 다른 오래된 버전의 경우
이 속성을 변경하기만 하면 됩니다.
<item name="colorPrimary">@color/colorPrimary</item>
로.
<item name="colorPrimary">@color/@null</item>
마지막으로 버튼의 배경을 원하는 그리기 가능 아이콘으로 설정합니다.예:
<Button
android:id="@+id/btnSwitch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@drawable/ic_launcher_background" /> <!--the drawable you want-->
앱 테마를 다음에서 변경하기만 하면 됩니다.Theme.MaterialComponents.DayNight.DarkActionBar
로.Theme.AppCompat.Light.NoActionBar
inside style.xml 파일
예제:
출처:style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar"
받는 사람:style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"
당신의 스타일은 이렇게 되어야 합니다..
<style name="ButtonStlye123" >
<item name="android:textSize">19dp</item>
<item name="android:layout_margin">8dp</item>
<item name="android:padding">8dp</item>
<item name="android:textColor">@color/ColorDivider</item>
<item name="android:background">@color/ColorAccent</item>
</style>
그리고 레이아웃에서.
<Button
android:id="@+id/btn3"
style="@style/ButtonStlye123"
android:layout_width="@dimen/sixzero"
android:layout_height="@dimen/sixzero"
android:text="3" />
저는 targetSdk 30과 completeSdk 32를 사용하고 있고 Button widget을 사용하고 있습니다.안드로이드 스튜디오 버전 2021.1.1
제 경우엔, 변화가 효과가 있었고,
Android Manifest.xml에서 "application" 태그 아래에서 "android:theme"을 변경합니다.
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
로.
android:theme="@style/Theme.MaterialComponents.DayNight.NoActionBar"
테마로 옮겼습니다.앱 컴뱃.Light.No ActionBar 제목 표시줄을 제거합니다.처음에는 '스타일'을 '테마'로 바꾸려고 했습니다.앱 컴뱃.temes.xml 안에 있는 "Light.No ActionBar"이지만 저에게는 효과가 없었습니다.
배경 변경 내용:
<Button android:background="@color/black">
이 선으로 >>
<Button android:backgroundTint="@color/black">
언급URL : https://stackoverflow.com/questions/31858374/android-button-background-color-not-changing
'source' 카테고리의 다른 글
Swagger API 작업 순서 지정 (0) | 2023.10.04 |
---|---|
판독 가능한 방법으로 dplyr 개수의 고유 개수 가져오기 (0) | 2023.10.04 |
Angular에서 .net WebAPI로 게시 (0) | 2023.10.04 |
트리거를 만들어야 해요 제가 문제가 있어요 (0) | 2023.10.04 |
PowerShell이 명령줄 인수에서 큰따옴표를 제거합니다. (0) | 2023.10.04 |