web-dev-qa-db-ja.com

AppCompat v7:21を使用してAndroidのEditTextフィールドをカスタマイズする方法

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'

enter image description here

物理デバイスのスクリーンショット。 Screenshot

12
iitum studant

次のコードを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を変更すると色が変わります。

10

さらに良いことには、それをEditTextからAppCompatEditTextに変更するだけで十分です。既に使用しているAppCompatを活用してください。

src: http://Android-developers.blogspot.ae/2014/10/appcompat-v21-material-design-for-pre.html

2
Samer