Appcompatv7 21を使用しており、editTextフィールドをカスタマイズしようとしています。
奇妙なことに、Lollipopでは正常に動作しますが、KitKatやLollipop以前のデバイスでは動作しません。サポートライブラリはすべてのプラットフォームで機能すると考えました。
<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色
そして、これは私のアプリの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
を活用してください。
src: http://Android-developers.blogspot.ae/2014/10/appcompat-v21-material-design-for-pre.html