为什么在 android 中将 Width 和 Height 设置为 wrap_content 后,我的 EditText 会水平或垂直扩展?
Why does my EditText got expanded horizontally or vertically after setting Width and Height as wrap_content in android?
我是 android 的新手。所以我正在努力解决以下问题。
1.after在EditText中设置android:layout_width = "wrap_content"
,垂直展开。
2.after在EditText中设置android:layout_width="180dp"
,水平展开。
有什么方法可以修复我的 EditText 吗?例如:如果我要在 EditText 中键入一个长电子邮件地址,文本的字体大小应该根据长文本缩小而不是 EditText 扩大。有没有可能完成这个任务?
这是我的代码
<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="example@xyz.com"
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"
/>
谢谢
梅艳芳
在 Libraries For Developers 中,您会在 Whosebug 中找到多个 AutoScaleTextView 变体和几个实现此目的的代码片段(如果我理解正确的话)
您可以通过在您的布局中替换来尝试此操作
<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="example@xyz.com"
android:padding="3dp"
android:layout_toEndOf="@id/textView1"
android:singleLine="true"
android:background="@drawable/text_oval"
android:id="@+id/textView2"
android:layout_alignBottom="@+id/textView1"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:text="" />
<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:layout_toEndOf="@id/textView3"
android:singleLine="true"
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"
/>
将您的 EditText
替换为以下代码:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:hint="example@xyz.com"
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"
android:singleLine="true"
android:ems="10"
android:layout_toRightOf="@+id/textView1"
android:layout_toEndOf="@+id/textView1"
/>
使用此布局代替您的布局:
<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="example@xyz.com"
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>
我已经使用了你的XML并修改了它。只需添加您的图像。我删除了它,因为我没有它们。
EDIT:我也为 editTexts 添加了 android:inputType
+ 并限制了 phone 号码 (12) 和电子邮件 (20),你可以根据自己改变它们。
在 TextView 上设置以下 属性 为我解决了这个奇怪的问题。在我看来,这应该是 textview 的默认行为。
android:imeOptions="flagNoExtractUi"
我是 android 的新手。所以我正在努力解决以下问题。
1.after在EditText中设置android:layout_width = "wrap_content"
,垂直展开。
2.after在EditText中设置android:layout_width="180dp"
,水平展开。
有什么方法可以修复我的 EditText 吗?例如:如果我要在 EditText 中键入一个长电子邮件地址,文本的字体大小应该根据长文本缩小而不是 EditText 扩大。有没有可能完成这个任务?
这是我的代码
<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="example@xyz.com"
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"
/>
谢谢 梅艳芳
在 Libraries For Developers 中,您会在 Whosebug 中找到多个 AutoScaleTextView 变体和几个实现此目的的代码片段(如果我理解正确的话)
您可以通过在您的布局中替换来尝试此操作
<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="example@xyz.com"
android:padding="3dp"
android:layout_toEndOf="@id/textView1"
android:singleLine="true"
android:background="@drawable/text_oval"
android:id="@+id/textView2"
android:layout_alignBottom="@+id/textView1"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:text="" />
<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:layout_toEndOf="@id/textView3"
android:singleLine="true"
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"
/>
将您的 EditText
替换为以下代码:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:hint="example@xyz.com"
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"
android:singleLine="true"
android:ems="10"
android:layout_toRightOf="@+id/textView1"
android:layout_toEndOf="@+id/textView1"
/>
使用此布局代替您的布局:
<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="example@xyz.com"
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>
我已经使用了你的XML并修改了它。只需添加您的图像。我删除了它,因为我没有它们。
EDIT:我也为 editTexts 添加了 android:inputType
+ 并限制了 phone 号码 (12) 和电子邮件 (20),你可以根据自己改变它们。
在 TextView 上设置以下 属性 为我解决了这个奇怪的问题。在我看来,这应该是 textview 的默认行为。
android:imeOptions="flagNoExtractUi"