【发布时间】:2015-09-03 13:36:10
【问题描述】:
我遇到了问题。我正在尝试借助主题使我的应用中的编辑文本看起来相同。
我在在线工具(9 补丁图像)的帮助下生成了样式,并尝试像这样在我的主题中设置它
<!-- Base application theme. -->
<style name="DefaultAppTheme" parent="Theme.AppCompat">
<!-- Main theme colors -->
<!-- your app branding color for the app bar -->
<item name="colorPrimary">@color/blue</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="colorPrimaryDark">@color/darkblue</item>
<!-- theme UI controls like checkboxes and text fields -->
<item name="colorAccent">@color/cornflowerblue</item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:editTextStyle">@style/EditTextDefault</item>
</style>
我的文本编辑风格
<style name="EditTextDefault" parent="android:Widget.EditText">
<item name="android:background">@drawable/edit_text_holo_light</item>
<item name="android:textColor">@color/light_blue</item>
<item name="android:layout_marginLeft">@dimen/margin_edit_text_default</item>
<item name="android:layout_marginRight">@dimen/margin_edit_text_default</item>
<item name="android:layout_marginTop">@dimen/margin_edit_text_default</item>
</style>
但是,如果使用编辑文本而不为每个编辑文本手动指定样式,这将不起作用。
这不起作用
<EditText
android:id="@+id/edit_text_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/edit_text_password"
android:hint="@string/hint_enter_login"
android:inputType="textEmailAddress" />
这行得通
<EditText
android:id="@+id/edit_text_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/edit_text_password"
style="@style/EditTextDefault"
android:hint="@string/hint_enter_login"
android:inputType="textEmailAddress" />
我知道 layout_* 参数如果在主题中使用不会影响,但其他属性应该可以工作。
请帮助解决这个问题。
【问题讨论】:
-
这很奇怪...相同的设置(尽管
EditTextDefault可能应该从@android:style/Widget.EditText继承而不是android:Widget.EditText)对我来说不需要为EditText指定style标签 -
@blipinsk 你是对的
-
您也可以在默认主题中使用此行
<item name="editTextColor">@color/black</item>
标签: android android-layout android-fragments android-theme