我正在尝试为我的整个应用创建基本主题,我为基本组件创建了自定义样式,例如EditText
,Button
,TextView
,并希望在我的应用中全局设置它们。
这是我的xml
代码。
<style name="AppThemeBase" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">@color/base_app_color</item>
<item name="colorPrimaryDark">@color/base_app_color</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="windowActionBarOverlay">true</item>
<item name="windowActionModeOverlay">true</item>
<item name="android:editTextStyle">@style/EditTextBaseStyle</item>
<item name="android:textViewStyle">@style/TextViewBaseStyle</item>
</style>
我的自定义编辑文字样式
<style name="EditTextBaseStyle" parent="Widget.AppCompat.EditText">
<item name="android:textColor">@color/base_text_color</item>
<item name="android:textSize">@dimen/text_size_edit_text</item>
<item name="android:textColorHint">@color/base_hint_color</item>
<item name="android:layout_centerHorizontal">true</item>
<item name="android:background">@drawable/edit_text_rounded_corners_bg</item>
</style>
我还尝试使用@android:style/Widget.EditText
作为父母。
<style name="TextViewBaseStyle" parent="@android:style/Widget.TextView">
<item name="android:textColor">@color/base_text_color</item>
<item name="android:textSize">@dimen/size_text_base</item>
<item name="android:layout_margin">@dimen/margin_text_view_base</item>
</style>
当然还有AndroidManifest.xml
档案
<application
android:name=".application.QrApplication"
android:allowBackup="true"
android:icon="@drawable/ic_logo_green"
android:label="@string/app_name"
android:theme="@style/AppThemeBase">
<activity
android:name=".ui.activities.LoginActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name"
android:noHistory="true"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我有几个问题
.
(点)的用户自定义样式,并使用关键字parent
作为默认主题,但是如果将这种类型的继承结合起来将会是这样的{{1 }}? <style name="SomeStyle.ParentStyle" parent="Widget.AppCompat.Button">
来使用活动中的片段上下文?如果您有任何想法会导致此类问题,请帮助解决或至少分享您的想法。
感谢。
答案 0 :(得分:0)
问题解决了
而不是覆盖
<item name="android:editTextStyle">@style/EditTextBaseStyle</item>
我必须覆盖
<item name="editTextStyle">@style/EditTextBaseStyle</item>
要确定需要覆盖的样式项,请遵循基本样式/主题的继承树,您将找到需要使用的样式项的名称。
但是注意
文本视图样式应该仍然是
<item name="android:textViewStyle">@style/TextViewBaseStyle</item>
这很奇怪但是原样。