gpt4 book ai didi

android - 为所有 EditText 设置一致的样式(例如)

转载 作者:IT老高 更新时间:2023-10-28 13:10:14 25 4
gpt4 key购买 nike

我正在尝试使我的应用程序中的所有 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 样式(命名为 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>

关于android - 为所有 EditText 设置一致的样式(例如),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10903647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com