如何使用 AppCompat v7:21 自定义 android 中的 EditText 字段
How to customize EditText field in android using AppCompat v7:21
我正在使用 Appcompatv7 21 并尝试自定义 editText 字段。
奇怪的是,它在棒棒糖上运行良好,但在 kitkat 或任何前棒棒糖设备上不起作用。我认为支持库适用于所有平台。
<style name="mAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">@color/veryLightGrey</item>
<item name="colorControlActivated">@color/colorAccent</item>
<item name="colorControlHighlight">@color/colorAccent</item>
</style>
compile 'com.android.support:appcompat-v7:21.0.3'
物理设备的屏幕截图。
尝试在您的 EditText
中添加下一个代码
style="@style/Widget.AppCompat.EditText"
签入真机
在我的 EditText
作品中,这是我的 EditText:
<EditText
android:id="@+id/editTextFacebookID"
style="@style/Widget.AppCompat.EditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="64dp"
android:layout_marginRight="8dp"
android:gravity="center_vertical"
android:hint="Facebook ID"
android:textColor="@color/md_text"
android:textColorHint="@color/md_disabled_hint_text" />
您可以在此处查看 md_text 和 md_disabled_hint_text 颜色:Google Colors
这是我的应用程序的 v19 风格:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/md_red_500</item>
<item name="colorPrimaryDark">@color/md_red_700</item>
<item name="colorAccent">@color/md_blue_A200</item>
<item name="colorControlHighlight">@color/md_black_1000_25</item>
<item name="colorControlNormal">@color/md_black_1000_50</item>
<item name="colorSwitchThumbNormal">@color/md_grey_200</item>
<item name="android:colorForeground">@color/md_black_1000_75</item>
<item name="android:windowTranslucentNavigation">@bool/translucentNavigationBar</item>
<item name="android:windowTranslucentStatus">@bool/translucentStatusBar</item>
<!-- Navigation Drawer Arrow Style. -->
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
<!-- Overflow Button Style. -->
<item name="actionOverflowButtonStyle">@style/OverflowStyle</item>
</style>
我的 EditText 未聚焦时为灰色,聚焦时为蓝色,它采用 colorAccent 的颜色。
当我更改 AppTheme 时它会改变颜色。
更好的是,只需将它从 EditText
更改为 AppCompatEditText
就可以了。受益于您已经在使用的 AppCompat
。
来源:http://android-developers.blogspot.ae/2014/10/appcompat-v21-material-design-for-pre.html
我正在使用 Appcompatv7 21 并尝试自定义 editText 字段。
奇怪的是,它在棒棒糖上运行良好,但在 kitkat 或任何前棒棒糖设备上不起作用。我认为支持库适用于所有平台。
<style name="mAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">@color/veryLightGrey</item>
<item name="colorControlActivated">@color/colorAccent</item>
<item name="colorControlHighlight">@color/colorAccent</item>
</style>
compile 'com.android.support:appcompat-v7:21.0.3'
物理设备的屏幕截图。
尝试在您的 EditText
style="@style/Widget.AppCompat.EditText"
签入真机
在我的 EditText
作品中,这是我的 EditText:
<EditText
android:id="@+id/editTextFacebookID"
style="@style/Widget.AppCompat.EditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="64dp"
android:layout_marginRight="8dp"
android:gravity="center_vertical"
android:hint="Facebook ID"
android:textColor="@color/md_text"
android:textColorHint="@color/md_disabled_hint_text" />
您可以在此处查看 md_text 和 md_disabled_hint_text 颜色:Google Colors
这是我的应用程序的 v19 风格:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/md_red_500</item>
<item name="colorPrimaryDark">@color/md_red_700</item>
<item name="colorAccent">@color/md_blue_A200</item>
<item name="colorControlHighlight">@color/md_black_1000_25</item>
<item name="colorControlNormal">@color/md_black_1000_50</item>
<item name="colorSwitchThumbNormal">@color/md_grey_200</item>
<item name="android:colorForeground">@color/md_black_1000_75</item>
<item name="android:windowTranslucentNavigation">@bool/translucentNavigationBar</item>
<item name="android:windowTranslucentStatus">@bool/translucentStatusBar</item>
<!-- Navigation Drawer Arrow Style. -->
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
<!-- Overflow Button Style. -->
<item name="actionOverflowButtonStyle">@style/OverflowStyle</item>
</style>
我的 EditText 未聚焦时为灰色,聚焦时为蓝色,它采用 colorAccent 的颜色。
当我更改 AppTheme 时它会改变颜色。
更好的是,只需将它从 EditText
更改为 AppCompatEditText
就可以了。受益于您已经在使用的 AppCompat
。
来源:http://android-developers.blogspot.ae/2014/10/appcompat-v21-material-design-for-pre.html