Java 为什么在android中将宽度和高度设置为wrap_内容后,我的EditText会水平或垂直扩展?

Java 为什么在android中将宽度和高度设置为wrap_内容后,我的EditText会水平或垂直扩展?,java,android,xml,android-layout,Java,Android,Xml,Android Layout,我是android的新手。因此,我正在努力解决以下问题 1.在EditText中设置android:layout_width=“wrap_content”后,它得到了垂直扩展 2.在EditText中设置android:layout_width=“180dp”后,它得到了水平扩展 是否有任何方法可以将我的EditText设置为已修复?例如:若我要在EditText中键入一个长电子邮件地址,文本的字体大小应该根据长文本缩小,而不是EditText扩大。有没有可能完成这项任务 这是我的密码 <

我是android的新手。因此,我正在努力解决以下问题

1.在EditText中设置android:layout_width=“wrap_content”后,它得到了垂直扩展

2.在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"

       />

谢谢 安妮塔


在中,您会发现不止一个AutoScaleTextView变体和StackOverflow中的几个代码段实现了这一点(如果我理解正确的话)

您可以通过在布局中替换来尝试这一点

    <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并对其进行了修改。只需添加您的图像。我把它拿走了,因为我没有它们


编辑:我也为编辑文本添加了
android:inputType
,并对电话号码(12)和电子邮件(20)进行了限制,您可以根据自己的情况进行更改

在TextView上设置以下属性为我解决了这个奇怪的问题。在我看来,这应该是textview的默认行为

android:imeOptions="flagNoExtractUi"

您是否使用图像作为背景?我有点迷路了。。您是否编辑了文本而不是TextVew?您添加的图像显示了对齐问题。为此添加整个XML。@AnitaShalu使用LinearLayout。在许多情况下,将声称自己是新手的人指向可以处理类似情况的开放源代码库库是一件令人大开眼界的事情。我不想写这篇文章作为评论,因为我同时在评论她,以便更好地解释这个问题。下面的投票有点糟糕,是的,我也试过。但是文本视图垂直扩展了。但是我不需要任何扩展。我只想一如既往地修复我的文本视图,即使我输入了一个很长的电子邮件地址,我可以知道single_line=true是什么意思吗?@AnitaShalu,single_line,顾名思义,当你按enter键时,你只能在一行中输入,键盘会关闭或移动下一个视图,但不会水平展开edittext。嘿,我确实展开了。但edittext视图仍在展开,就像我在编辑代码后将图像张贴在下方一样。请现在试一试。您需要指定editText的布局,它应该位于textView1的右侧。上面的editText代码。添加了以下行:
android:singleLine=“true”android:ems=“10”android:layout_-toRightOf=“@+id/textView1”android:layout_-toEndOf=“@+id/textView1”
底部的结束标记关闭了topHey-man@Tushar上的一个。您的想法现在已经奏效了。但我仍然面临着小pblm。i、 e)当我进入时xxxxxxyyyyx1990@gmail.com在textView中,我只能单独查看gmail。无法查看剩余文本。@AnitaShalu是的,我们可以,我们想要多少就用多少,但最好尽量少用(为了更好的性能)。不要担心文本,它是一个水平滚动条,如果你水平移动滚动条,你就会看到它。我编辑了答案并用旧的替换了它。是的,你可以用它。在两台设备上测试了视图,效果很好!你有机会使用emulator吗?非常感谢,伙计…你真的帮了我很大的忙..很抱歉,你的个人资料中提到的fb id导致我访问“”此链接。。