모든 EditText에 일관된 스타일 설정 (예 :)
EditText
내 응용 프로그램의 모든 것이 일관되게 보이 도록 노력하고 있습니다. 다음과 같이 할 수 있다는 것을 알고 있습니다.
<style name="App_EditTextStyle">
<item name="android:background">@drawable/filled_roundededges_box_dark</item>
<item name="android:textColor">#808080</item>
<item name="android:layout_height">45dip</item>
</style>
그런 다음 다음 EditText
을 수행 하여 특정 스타일을 만들 수 있습니다 .
<EditText ...
style="@style/App_EditTextStyle
...>
그러나 이렇게하면 EditText
오류가 발생하기 쉽지는 않지만 지루한 애플리케이션의 모든 스타일을 개별적으로 설정하는 것을 기억해야합니다 .
이것을 테마의 일부로 만들 수있는 방법이 있습니까? 따라서이 스타일을 모든 EditText
. 다음과 같은 가상의 코드 블록 :
<style name="App_Theme" parent="@android:style/Theme.Holo">
...
<item name="android:EditTextSyle">@style/App_EditTextStyle</item>
...
<style>
그리고 내 안에 다음 AndroidManifest.xml
과 같은 것이 있습니다.
<application
....
android:theme="@style/App_Theme">
그리고 짜잔! 내 모든 것은 EditText
각 인스턴스에 대한 스타일을 지정하지 않고도 일관된 스타일을 갖습니다.
사용자 정의 테마에서 EditText
style (named editTextStyle
:))을 가리키는 속성을 재정의하십시오 .
<style name="App_Theme" parent="@android:style/Theme.Holo">
<item name="android:editTextStyle">@style/App_EditTextStyle</item>
</style>
확장 할 사용자 정의 스타일을 만듭니다 Widget.EditText
.
<style name="App_EditTextStyle" parent="@android:style/Widget.EditText">
<item name="android:background">@drawable/filled_roundededges_box_dark</item>
<item name="android:textColor">#808080</item>
<item name="android:layout_height">45dip</item>
</style>
편집하다:
훨씬 새로운 AppCompat 관련 테마를 사용하는 경우 android 접두사없이 editTextStyle 속성을 사용하십시오.
<style name="App_Theme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="editTextStyle">@style/App_EditTextStyle</item>
</style>
@Luksprog 대답은 정확하지만 나를 위해 작동하지 않습니다. 몇 가지 실험 후 editTextStyle에서 android 네임 스페이스를 제거하면 작동한다는 것을 알았습니다.
<style name="App_Theme" parent="@android:style/Theme.Holo">
<item name="editTextStyle">@style/App_EditTextStyle</item>
</style>
확장 할 사용자 정의 스타일을 만들 Widget.EditText
거나 AppCompat 테마를 사용하는 경우 Widget.AppCompat.EditText
:
<style name="App_EditTextStyle" parent="@android:style/Widget.EditText">
<item name="android:background">@drawable/filled_roundededges_box_dark</item>
<item name="android:textColor">#808080</item>
<item name="android:layout_height">45dip</item>
</style>
먼저 EditText의 스타일을 정의하십시오. 부모 스타일이android:Widget.EditText
<style name="CustomEditTextStyle" parent="android:Widget.EditText">
<item name="android:textColor">#0F0F0F</item>
<!-- ... More items here if needed ... -->
</style>
After that, override the attribute android:editTextStyle
in your custom theme. Be aware, if you are using the support library, you will also need to override the attribute editTextStyle
(without the android namespace).
<style name="App_Theme" parent="...">
<item name="android:editTextStyle">@style/CustomEditTextStyle</item>
<item name="editTextStyle">@style/CustomEditTextStyle</item> <!-- For compatibility with the support library -->
</style>
If you just need to set a few simple parameters, like text color, the Android namespace has a few parameters that will do that without the need to declare a separate style for the edit text. Eg
<style name="MyStyle" parent="android:Theme.Material.NoActionBar">
<item name="colorPrimary">@color/black</item>
<item name="colorPrimaryDark">@color/white</item>
<item name="colorAccent">@color/white</item>
<item name="android:textColor">@color/black</item>
<item name="android:editTextColor">@color/black</item>
<item name="android:editTextBackground">@color/black</item>
....
</style>
<style name="App_Theme" parent="@android:style/Theme.Holo">
<item name="android:editTextBackground">@drawable/filled_roundededges_box_dark</item>
</style>
참고URL : https://stackoverflow.com/questions/10903647/set-a-consistent-style-to-all-edittext-for-e-g
'developer tip' 카테고리의 다른 글
객체를 사전에 매핑하거나 그 반대로 매핑 (0) | 2020.10.11 |
---|---|
Mustache 템플릿에서 후행 쉼표없이 쉼표로 구분 된 목록을 표현하는 우아한 방법이 있습니까? (0) | 2020.10.11 |
Python은 str.format을 사용하여 선행 0을 추가합니다. (0) | 2020.10.11 |
Perl : 문자열 선행 및 후행 공백을 제거하는 기능 (0) | 2020.10.11 |
Android WebView에서 JavaScript 경고가 작동하지 않음 (0) | 2020.10.11 |