appcompat-v7:26 EditText始终为白色

时间:2017-08-12 04:57:03

标签: android android-edittext android-appcompat

我是Android编程的新手,但描述我的问题的所有问题似乎都没有帮助。

Edittext color is white in appcompat 22.2

Android EditText Text Color is always white

Android edittext color white on white background

当然,我看起来非常愚蠢

IssuePictured

我的活动:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

        <EditText 
            android:id="@+id/username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="@string/font_family_regular"
            android:hint="@string/user_name"
            android:maxLines="1"
            android:nextFocusDown="@+id/password"
            android:imeOptions="actionNext"
            android:inputType="text"
            android:text=""
            android:textColor="#000000"/>
</android.support.design.widget.TextInputLayout>

My Styles XML

<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
    <!-- Customize your theme here. -->

    <item name="android:textColor">@android:color/black</item>
    <item name="android:textColorHint">@android:color/darker_gray</item>
    <item name="colorAccent">#0000FF</item>
    <item name="colorControlNormal">#0000FF</item>
    <item name="colorControlActivated">#0000FF</item>
</style>

</resources>

Graddle app

apply plugin: 'com.android.application'

android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
    applicationId "com.myapp"
    minSdkVersion 19
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner 
"android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', 
{
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support:design:26.+'
testCompile 'junit:junit:4.12'
}

4 个答案:

答案 0 :(得分:1)

我在@Dahnark发布了解决方案:

How to customize EditText field in android using AppCompat v7:21

尝试在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时,它会改变颜色。

答案 1 :(得分:0)

如下所示更改appcomcat版本并检查

compile 'com.android.support:appcompat-v7:26.+'

答案 2 :(得分:0)

您应该在 TextInputLayout 中添加 android:theme ,而不是 EditText 部分。

<android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme">

你应该设置

compile 'com.android.support:appcompat-v7:26.0.1'
compile 'com.android.support:design:26.0.1'

答案 3 :(得分:0)

我认为你应该试试这个: -

<强> activity_main.xml中

<android.support.design.widget.TextInputLayout
    android:id="@+id/input_layout_name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
        android:id="@+id/ed_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter Your Name"
        android:textColor="@android:color/black"/>

</android.support.design.widget.TextInputLayout>

并按照以下方式更新 style.xml : -

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>