选择edittext时,主题/样式不会更改

时间:2016-08-30 05:42:56

标签: android

我的注册表单中有Edittext。当用户触摸edittext然后编辑文本框变为绿色(表示选择了编辑文本)我不想要这个。当用户选择任何edittext时,line blow edittext保持白色。please check this image for more clarification

Xml代码:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.science.character.fragments.Email_signup_Fragment">

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".activities.Email_signupActivity"
    >
    <ImageView
        android:id="@+id/img_backbutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/backbutton1"/>

    <TextView
        android:id="@+id/text_sign_up"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/email_sign_up_text"
        android:fontFamily="sans-serif-thin"
        android:layout_marginTop="10dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:textColor="@android:color/white"
        android:textSize="25dp"
        />

    <RelativeLayout
        android:id="@+id/relativelayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/text_sign_up"
        android:layout_above="@+id/btn_create_account"
        android:layout_marginTop="10dp"
        android:layout_marginBottom="10dp"
        >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_centerInParent="true"
            android:layout_marginTop="20dp"
            >


            <EditText
                android:id="@+id/edittext_firstname"
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:hint="first name"
                android:text=""
                android:fontFamily="sans-serif-light"

                android:singleLine="true"
                android:textAlignment="center"
                android:layout_marginLeft="30dp"
                android:layout_marginRight="30dp"
                android:layout_gravity="center_horizontal" />
            <EditText
                android:id="@+id/edittext_lastname"
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:hint="last name"
                android:text=""
                android:fontFamily="sans-serif-light"
                android:singleLine="true"
                android:textAlignment="center"
                android:layout_marginLeft="30dp"
                android:layout_marginRight="30dp"
                android:layout_marginTop="10dp"
                android:layout_gravity="center_horizontal" />


            <EditText
                android:id="@+id/edittext_email"
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:hint="email"
                android:text=""
                android:fontFamily="sans-serif-light"
                android:singleLine="true"
                android:textAlignment="center"
                android:layout_marginLeft="30dp"
                android:layout_marginRight="30dp"
                android:layout_marginTop="10dp"
                android:layout_gravity="center_horizontal" />

            <EditText
                android:id="@+id/edittext_password"
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:layout_marginLeft="30dp"
                android:layout_marginRight="30dp"
                android:text=""
                android:inputType="textPassword"
                android:fontFamily="sans-serif-light"
                android:hint="Password"
                android:singleLine="true"
                android:textAlignment="center"
                android:layout_marginTop="10dp"
                android:layout_gravity="center_horizontal" />
            <EditText
                android:id="@+id/edittext_confirm_password"
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:layout_marginLeft="30dp"
                android:layout_marginRight="30dp"
                android:inputType="textPassword"
                android:text=""
                android:fontFamily="sans-serif-light"
                android:hint="Confirm Password"
                android:textAlignment="center"
                android:layout_marginTop="10dp"
                android:layout_gravity="center_horizontal" />


        </LinearLayout>

    </RelativeLayout>
    <Button
        android:id="@+id/btn_create_account"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:text="@string/create_account_button"
        android:textColor="@android:color/white"
        android:fontFamily="sans-serif-light"
        android:textSize="24dp"
        android:textAllCaps="false"
        android:background="@drawable/button_background"
        android:layout_marginRight="30dp"
        android:layout_marginLeft="30dp"
        android:layout_marginBottom="20dp"
        android:layout_centerHorizontal="true"
        android:layout_above="@+id/text_terms_condition"
        />

    <TextView
        android:id="@+id/text_terms_condition"
        android:layout_width="wrap_content"
        android:layout_height="25dp"
        android:text="@string/terms_and_conditions"
        android:textColor="@android:color/white"
        android:textSize="12dp"
        android:fontFamily="sans-serif-thin"
        android:textAllCaps="false"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        />

</RelativeLayout>

4 个答案:

答案 0 :(得分:0)

In your styles.xml

<style name="EditTextTheme">
  <item name="colorControlNormal">#ffffff</item>
</style>

apply theme for edittext

<EditText
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:theme="@style/EditTextTheme"/>

其他解决方案:在drawables中创建选择器xml文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff" />
<stroke android:width="1dip" android:color="#ff9900" />
</shape>

在edittext中添加此行

android:background="@drawable/xml name"

答案 1 :(得分:0)

转到 styles.xml 并将应用主题更改为:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/white</item>  CHANGE THIS LINE
</style>

答案 2 :(得分:0)

我遇到了更改全局主题的问题,我只想要一个EditText而不是全部,所以设置全局样式不是正确的答案。

相反,我只是这样做了:

<android.support.design.widget.TextInputEditText
    android:id="@+id/car_seller_notes_edit_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Hint"
    android:maxLength="1000"
    android:background="@drawable/edit_text_myunderline"/>

<强> edit_text_myunderline.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <!-- Draw a 2dp width border around shape -->
            <stroke android:color="@color/edit_text_underline_color" android:width="2dp" />
        </shape>
    </item>
    <!-- Overlap the left, top and right border using background color  -->
    <item android:bottom="2dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/window_background"/>
        </shape>
    </item>
</layer-list>

答案 3 :(得分:0)

使用最新资料库

app / build.gradle

implementation 'com.google.android.material:material:1.2.0-alpha06'

styles.xml

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.Bridge">
    <!-- Customize your theme here. -->
    ...
</style>

布局XML

    <com.google.android.material.textfield.TextInputLayout
        style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
        android:id="@+id/text_input_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="16dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        >
        <EditText
            android:id="@+id/edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="User Name"
            android:text="Chandler"
            android:textCursorDrawable="@null"
            />
    </com.google.android.material.textfield.TextInputLayout>

科特琳码

    text_input_layout.boxStrokeColor = Color.CYAN
    text_input_layout.defaultHintTextColor = ColorStateList.valueOf(Color.YELLOW)
    text_input_layout.setErrorTextColor(ColorStateList.valueOf(Color.RED))
    text_input_layout.setErrorIconTintList(ColorStateList.valueOf(Color.RED))
    edit_text.backgroundTintList = ColorStateList.valueOf(Color.LTGRAY)

当文本字段被聚焦/选中/突出显示时:

focused_state

当文本字段处于错误状态时: error_state