Java – Why does my EditText scale horizontally or vertically when I set Width and Height to wrap_content in android?

Why does my EditText scale horizontally or vertically when I set Width and Height to wrap_content in android?… here is a solution to the problem.

Why does my EditText scale horizontally or vertically when I set Width and Height to wrap_content in android?

I’m new to Android. So I’m working on the following issues.

1. After setting android:layout_width=”wrap_content" in EditText, expand vertically.

2. After setting android:layout_width="180dp" in EditText, expand horizontally

Is there any way to pin my EditText? For example: If I were to type a long email address in EditText, the font size of the text should shrink according to the long text instead of EditText. Is it possible to accomplish this task?

Here is my code

<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" 

tools:context="com.vadmin.myrx.SendReport">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Doctor Email"
    android:textStyle="bold"
    android:id="@+id/textView1"
    android:layout_marginTop="75dp"
    android:layout_marginLeft="25dp"
    android:layout_marginStart="25dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:hint="[email protected]"
    android:padding="3dp"
    android:background="@drawable/text_oval"
    android:id="@+id/textView2"
    android:layout_alignBottom="@+id/textView1"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Phone"
    android:textStyle="bold"
    android:id="@+id/textView3"
    android:layout_marginRight="24dp"
    android:layout_marginEnd="24dp"
    android:layout_marginTop="44dp"
    android:layout_below="@+id/textView1"
    android:layout_alignRight="@+id/textView1"
    android:layout_alignEnd="@+id/textView1" />

<EditText
    android:layout_width="180dp"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:hint="+91 0000 000 000"
    android:padding="3dp"
    android:id="@+id/textView4"
    android:layout_alignTop="@+id/textView3"
    android:layout_alignLeft="@+id/textView2"
    android:layout_alignStart="@+id/textView2"
    android:background="@drawable/text_oval"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Report"
    android:textStyle="bold"
    android:id="@+id/textView5"
    android:layout_marginTop="45dp"
    android:layout_below="@+id/textView4"
    android:layout_alignRight="@+id/textView3"
    android:layout_alignEnd="@+id/textView3" />

<Spinner
    android:layout_width="250dp"
    android:layout_height="48dp"
    android:id="@+id/spinner"
    android:spinnerMode="dropdown"
    android:background="@android:drawable/btn_dropdown"
    android:layout_alignTop="@+id/textView5"
    android:layout_alignLeft="@+id/textView4"
    android:layout_alignStart="@+id/textView4" />

<Button
       android:layout_width="wrap_content"
       android:layout_height="40dp"
       android:text="Save"
       android:layout_marginTop="57dp"
       android:id="@+id/button"
       android:layout_below="@+id/spinner"
       android:layout_toRightOf="@+id/textView3"
       android:layout_toEndOf="@+id/textView3"
       android:textColor="#000000"
        android:background="@drawable/oval"

/>

Thank you.
Anita Mui

enter image description here

Solution

Use this layout instead of yours:

   <LinearLayout 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:orientation="vertical"
    tools:context="com.vadmin.myrx.SendReport" >

<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        android:orientation="horizontal"
        android:weightSum="2" >

<TextView
            android:id="@+id/textView1"
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:layout_marginRight="2dp"
            android:text="Doctor Email"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15sp"
            android:textStyle="bold" />

<EditText
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="2dp"
            android:layout_weight="1"
            android:hint="[email protected]"
            android:inputType="textWebEmailAddress"
            android:maxLength="20"
            android:padding="3dp"
            android:singleLine="true"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    </LinearLayout>

<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        android:orientation="horizontal"
        android:weightSum="2" >

<TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="2dp"
            android:layout_weight="1"
            android:text="Phone"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15sp"
            android:textStyle="bold" />

<EditText
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="2dp"
            android:layout_weight="1"
            android:hint="+91 0000 000 000"
            android:maxLength="12"
            android:inputType="phone"
            android:padding="3dp"
            android:singleLine="true"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    </LinearLayout>

<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        android:orientation="horizontal" >

<TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="2dp"
            android:text="Report"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textSize="15sp"
            android:textStyle="bold" />

<Spinner
            android:id="@+id/spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="2dp"
            android:spinnerMode="dropdown" />
    </LinearLayout>

<Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:layout_below="@+id/spinner"
        android:layout_gravity="center"
        android:layout_marginTop="57dp"
        android:layout_toEndOf="@+id/textView3"
        android:layout_toRightOf="@+id/textView3"
        android:text="Save"
        android:textColor="#000000" />

</LinearLayout>

I have used your XML and modified it. Just add your image. I deleted it because I don’t have them.

EDIT: I’ve also added android:inputType+ for editTexts and restricted phone numbers (12) and email (20), you can change them according to yourself.

Related Problems and Solutions