为什么编辑文本预览显示不正确...?

3

我有一个编辑文本框,预览如下图所示:

device

在输入时,只有一半的文本显示出来。当我按下返回键(软键盘消失)后,整个文本才会显示。

代码如下:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:background="#D8D8D8" android:orientation="vertical"
    android:padding="10dp" android:gravity="center" android:layout_gravity="center">

    <LinearLayout android:id="@+id/linearLayout1"
        android:layout_width="fill_parent" android:layout_height="wrap_content">
        <TextView android:text="Register Now" android:id="@+id/textView1"
            android:layout_width="fill_parent" android:layout_height="fill_parent"
            android:textStyle="bold" android:gravity="center" android:textSize="30dp">
        </TextView>
    </LinearLayout>
    <LinearLayout android:id="@+id/linearLayout1"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:paddingLeft="20dp" android:paddingRight="20dp"
        android:orientation="vertical" android:gravity="center">
        <LinearLayout android:id="@+id/linearLayout1"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:orientation="vertical">
            <TextView android:text=" First Name" android:id="@+id/textView1"
                android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:layout_centerVertical="true" android:textSize="17dp"
                android:textColor="#6E6E6E"></TextView>
            <EditText android:layout_width="fill_parent"
                android:layout_height="55dp" android:layout_alignParentRight="true"
                android:layout_centerVertical="true" android:id="@+id/fname"
                android:singleLine="true" android:paddingLeft="10dp"
                android:paddingRight="10dp" android:background="@drawable/edit_bg"></EditText>
        </LinearLayout>

        <LinearLayout android:id="@+id/linearLayout1"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:orientation="vertical">
            <TextView android:text=" Last Name" android:id="@+id/textView1"
                android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:layout_centerVertical="true" android:textSize="17dp"
                android:textColor="#6E6E6E"></TextView>
            <EditText android:layout_width="fill_parent"
                android:layout_height="55dp" android:layout_alignParentRight="true"
                android:layout_centerVertical="true" android:id="@+id/lname"
                android:singleLine="true" android:paddingLeft="10dp"
                android:paddingRight="10dp" android:background="@drawable/edit_bg"></EditText>
        </LinearLayout>

        <LinearLayout android:id="@+id/linearLayout1"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:orientation="vertical" android:layout_marginBottom="10dp">
            <TextView android:text=" Email" android:id="@+id/textView1"
                android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:layout_centerVertical="true" android:textSize="17dp"
                android:textColor="#6E6E6E"></TextView>
            <EditText android:layout_width="fill_parent"
                android:layout_height="55dp" android:id="@+id/email"
                android:paddingLeft="10dp" android:paddingRight="10dp"
                android:background="@drawable/edit_bg" android:inputType="textEmailAddress"
                android:singleLine="true"></EditText>
        </LinearLayout>

        <RelativeLayout android:id="@+id/linearLayout1"
            android:layout_width="fill_parent" android:layout_height="80dp">
            <Button android:text="Register" android:id="@+id/register"
                android:layout_width="200dp" android:layout_height="wrap_content"
                android:layout_centerInParent="true" android:textStyle="bold"></Button>
        </RelativeLayout>
    </LinearLayout>
</LinearLayout>

如何解决这个问题...?

提前感谢...!


你的edit_bg高度和宽度分别是多少? - anddev
你的代码在我的应用程序中正常运行。 - anddev
它在模拟器中运行良好,但在设备上却无法运行。 - Noby
你正在使用哪个设备?三星对吧。 - Padma Kumar
我已经在三星GT-I5801、HTC Desire和Alcate OT-890上尝试过了,但在所有这些设备上都出现了同样的问题。 - Noby
显示剩余3条评论
5个回答

0
也许如果你把文本框里的文字缩小一点,它就能适应了。 另一个想法是,如果你在文本视图中有任何填充,请将其删除,或者增加其高度。

我已经尝试更改文本大小,但问题仍然重复..! - Noby
1
我仍然认为,如果您将文本缩小一点,例如12 dp,它会适合 :) - Aurelian Cotuna

0
将EditText的高度设置为android:layout_height="200dp"或其他数值,并进行检查。

我已经在我的模拟器上尝试过了,它可以正常工作。只需删除您的可绘制对象并检查一下。 - user493244
我也尝试了在三星Galaxy平板上,并且删除了背景可绘制物,也正常工作。 - user493244
我已经在三星GT-I5801、HTC Desire和Alcate OT-890上尝试过了,但所有这些设备都出现了同样的问题。 - Noby
你在检查时是否删除了可绘制对象? - user493244

0

这不仅仅是模拟器的问题吗?你尝试过真实设备了吗?


在模拟器中它运行良好...!问题只出现在设备上..! - Noby

0

我在实际设备上尝试了以下操作,完美运行。

        <TextView
            android:id="@+id/textView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:text=" Email"
            android:textColor="#6E6E6E"
            android:textSize="17dp" >
        </TextView>

        <EditText
            android:id="@+id/email"
            android:background="@drawable/edit_bg"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="textEmailAddress"
            android:singleLine="true" />
    </LinearLayout>

0

问题出在你的布局设计上。你在低分辨率屏幕上检查了。

Alcate OT-890 - 320 x 240 pixels, 2.8 in
Samsung GT-i5801 -240 x 400 px (3,2")

你可以在你的Android清单文件中添加 android:windowSoftInputMode="adjustResize",这样键盘滑动/显示时就不会出现问题了。

//如果使用相对布局出现问题,可以尝试使用下面这行代码。

<LinearLayout android:id="@+id/linearLayout1" android:gravity="center_vertical|center_horizontal"
            android:layout_width="fill_parent" android:layout_height="80dp">
            <Button android:text="Register" android:id="@+id/register"
                android:layout_width="200dp" android:layout_height="wrap_content"
                 android:textStyle="bold"></Button>
        </LinearLayout>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接