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