我试图让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>
Run Code Online (Sandbox Code Playgroud)
然后我可以EditText通过这样做来制作一个特殊的风格:
<EditText ...
style="@style/App_EditTextStyle
...>
Run Code Online (Sandbox Code Playgroud)
但是这样我必须记住为EditText我的应用程序中的每一个单独设置样式,这很繁琐,如果不是容易出错的话.
有什么办法可以让它成为主题的一部分吗?这样我就不必将这种风格与每种风格联系起来了EditText.像这个虚构的代码块:
<style name="App_Theme" parent="@android:style/Theme.Holo">
...
<item name="android:EditTextSyle">@style/App_EditTextStyle</item>
...
<style>
Run Code Online (Sandbox Code Playgroud)
然后在我的AndroidManifest.xml我有类似的东西:
<application
....
android:theme="@style/App_Theme">
Run Code Online (Sandbox Code Playgroud)
还有瞧!所有我EditText都有一致的风格,而不必为每个实例指定样式.
Luk*_*rog 145
覆盖指向自定义主题中EditText样式(名为editTextStyle:) 的属性:
<style name="App_Theme" parent="@android:style/Theme.Holo">
<item name="android:editTextStyle">@style/App_EditTextStyle</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并使您的自定义样式扩展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>
Run Code Online (Sandbox Code Playgroud)
ifl*_*flp 50
@Luksprog答案是正确的但不适合我.经过一些实验,我发现从editTextStyle中删除android命名空间使它对我有用.
<style name="App_Theme" parent="@android:style/Theme.Holo">
<item name="editTextStyle">@style/App_EditTextStyle</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并使您的自定义样式扩展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>
Run Code Online (Sandbox Code Playgroud)
Rey*_*lar 17
首先,为EditText定义样式.确保父样式是android:Widget.EditText
<style name="CustomEditTextStyle" parent="android:Widget.EditText">
<item name="android:textColor">#0F0F0F</item>
<!-- ... More items here if needed ... -->
</style>
Run Code Online (Sandbox Code Playgroud)
之后,覆盖android:editTextStyle自定义主题中的属性.请注意,如果您使用的是支持库,则还需要覆盖该属性editTextStyle(不带android命名空间).
<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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
74240 次 |
| 最近记录: |