Android : 선택기에서 된 된 버튼의 textColor가 표시되지 않습니까?
선택기로 버튼을 만들려고합니다. 내 버튼의 상태는 다음과 달라집니다.
- 활성화 / 활성화
- 누름 / 눌리지 발생
언급 된 한 상태에 따르면. 버튼을 조작해야합니다.
- 텍스트 색상
- 배경 이미지
버튼은 중단 된 상태에서 시작 버튼으로 시작된 텍스트 색상 및 중단 된 버튼 배경이됩니다. 하지만 기본 textColor (스타일로 지정됨)와 배경 이미지 없음을 볼 수 있습니다!
여기 내 선택기 button_selector.xml이 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false"
android:state_enabled="false"
android:textColor="#9D9FA2"
android:drawable="@drawable/button" />
<item android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/button_pressed"/>
<item android:state_pressed="true"
android:state_enabled="false"
android:textColor="#9D9FA2"
android:drawable="@drawable/button"/>
<item android:state_pressed="false"
android:state_enabled="true"
android:drawable="@drawable/button"/>
</selector>
그리고 여기 내 layout.xml의 버튼이 있습니다.
<Button android:id="@+id/reserve_button"
android:text="@string/reserve_button"
android:layout_width="120dp"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="20dp"
android:paddingRight="15dp"
android:layout_gravity="left"
style="@style/buttonStyle"
android:background="@drawable/button_selector" />
그리고 마지막으로 이것은 내 스타일입니다 (내 기본 textColor가 설치된 곳)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="buttonStyle">
<item name="android:textStyle">bold</item>
<item name="android:textColor">#282780</item>
<item name="android:textSize">18sp</item>
</style>
</resources>
도와주세요!
ColorStateList
다른 상태를 이미지하는 텍스트 색상을 위해 등급을 지정합니다 .
다음을 수행하십시오.
res\color
같은 이름의 다른 XML 파일을 만듭니다text_color.xml
.<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- disabled state --> <item android:state_enabled="false" android:color="#9D9FA2" /> <item android:color="#000"/> </selector>
에서 다음과 같이
style.xml
해당text_color.xml
파일 에 대한 참조를 입력하십시오 .<style name="buttonStyle" parent="@android:style/Widget.Button"> <item name="android:textStyle">bold</item> <item name="android:textColor">@color/text_color</item> <item name="android:textSize">18sp</item> </style>
문제가 해결 될 것입니다.
1. / res / 폴더에 색상 폴더를 만들고 xml에 색상 폴더를 만듭니다.
text_color_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- disabled state -->
<item android:state_enabled="false" android:color="#776678" />
<item android:color="#ffffff"/>
</selector>
2. 이제 xml 레이아웃을 만듭니다.
<Button
android:id="@+id/button_search"
android:layout_width="652dp"
android:layout_height="48dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="18dp"
android:background="@android:color/transparent"
android:text="Hello Bhaskar"
android:textColor="@color/text_color_selector"/>
가장 쉬운 해결책은 여기에서 본 것처럼 컬러 필터를의 배경 이미지와 버튼으로 설정하는 것입니다 .
다음과 같이 할 수 있습니다.
if ('need to set button disable')
button.getBackground().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY);
else
button.getBackground().setColorFilter(null);
내가 누군가를 도왔 으면 좋겠다 ...
<Button android:id="@+id/reserve_button"
android:text="@string/reserve_button"
android:layout_width="120dp"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="20dp"
android:paddingRight="15dp"
android:layout_gravity="left"
style="@style/buttonStyle"
android:background="@drawable/button_selector" />
레이아웃 xml에서 버튼을 볼 수 없습니다. 이것을 버튼 레이아웃에 추가하십시오.
android:enabled="false"
버튼 레이아웃은
<Button android:id="@+id/reserve_button"
android:text="@string/reserve_button"
android:layout_width="120dp"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:layout_marginLeft="20dp"
android:enabled="false"
android:paddingRight="15dp"
android:layout_gravity="left"
style="@style/buttonStyle"
android:background="@drawable/button_selector" />
색상 목록을 만들 수 있습니다.
파일 위치 :
res/color/filename.xml
파일 이름은 리소스 ID로 사용됩니다.
리소스 참조 :
자바 : R.color.filename
XML에서 : @[package:]color/filename
통사론:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:color="hex_color"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
예:
다음에 저장된 XML 파일 res/color/button_text.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true"
android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000"/> <!-- default -->
</selector>
이 레이아웃 XML은 뷰에 색상 목록을 적용합니다.
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_text"
android:textColor="@color/button_text" />
참조 : 색상 목록 참조
'IT' 카테고리의 다른 글
모든 .dll을 무시하는 git 저장소 (0) | 2020.09.15 |
---|---|
전체 HTML 요소를 덮도록 배경 이미지를 늘리려면 어떻게 처리합니까? (0) | 2020.09.15 |
텍스트 파일에서 줄 바꿈을 어떻게 제거합니까? (0) | 2020.09.15 |
배치 확장 내에서 배치 확장을 어떻게 실행 가능합니까? (0) | 2020.09.15 |
방문자로부터 실제 IP를 얻는 방법은 무엇입니까? (0) | 2020.09.15 |