我想更改应用中所有编辑文字的背景形状。我像这样在drawable文件夹中创建了xml文件。
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp"/>
<stroke android:width="1sp" android:color="@android:color/darker_gray"/>
<solid android:color="@android:color/white"/>
<padding android:top="5dp" android:left="5dp" android:right="5dp" android:bottom="5dp"/>
</shape>
我在styles.xml文件中创建了样式标记。
<style name="editTxt_theme" parent="@android:style/Widget.EditText">
<item name="android:background">@drawable/edittxt_shape</item>
</style>
我将这个主题应用到我的活动中。但它应用了所有其他小部件。有什么不对的吗?
感谢。
答案 0 :(得分:5)
首先,您需要在styles.xml
中为您的应用定义主题,并使用android:editTextStyle
为所有EditText
视图定义自定义样式,如下所示:
<style name="MyAppTheme" parent="android:Theme.Light">
<item name="android:editTextStyle">@style/CustomEditTextStyle</item>
</style>
<style name="CustomEditTextStyle">
<item name="android:background">@drawable/edittxt_shape</item>
<item name="android:clickable">true</item>
<item name="android:enabled">true</item>
<item name="android:focusable">true</item>
<item name="android:focusableInTouchMode">true</item>
<item name="android:gravity">center_vertical</item>
</style>
现在剩下的就是告诉你的应用在你的清单中使用你的主题:
<application
android:theme="@style/MyAppTheme" >
...
</application>
这样,您就不需要在所有style
次观看中添加EditText
个属性。