Android Edittext提示问题

6

我的布局文件如下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/page_background"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/label_background" >

        <com.olacabs.customer.model.TextViewPlus
            android:id="@+id/header"
            android:layout_width="fill_parent"
            android:layout_height="54dp"
            android:background="@color/label_background"
            android:gravity="center"
            android:text="@string/invite_email"
            android:textColor="@color/white"
            android:textSize="22dp"
            android:textStyle="bold"
            custom:customFont="Roboto-Regular.ttf" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:descendantFocusability="beforeDescendants"
        android:focusableInTouchMode="true"
        android:gravity="top"
        android:orientation="vertical"
        android:paddingLeft="10dp"
        android:paddingRight="10dp" >

        <com.olacabs.customer.model.TextViewPlus
            android:id="@+id/emailHint"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:layout_marginBottom="10dp"
            android:layout_marginTop="15dp"
            android:text="@string/enter_your_friend_s_email_address"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/heading_text_color"
            custom:customFont="Roboto-Regular.ttf" />

        <TextView
            android:id="@+id/errorText"
            style="@style/errorText"
            android:layout_marginBottom="10dp"
            android:visibility="gone" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="100dp"
            android:background="@drawable/round_corners"
            android:descendantFocusability="beforeDescendants"
            android:focusableInTouchMode="true"
            android:padding="10dp" >

            <EditText
                android:id="@+id/emailText"
                style="@style/emailText"
                android:layout_height="fill_parent"
                android:background="@android:color/transparent"
                android:hint="@string/email_ids_separated_by_commas"
                android:imeOptions="actionGo" />

        </LinearLayout>

        <com.olacabs.customer.model.ButtonPlus
            android:id="@+id/inviteButton"
            style="@style/button_1"
            android:layout_width="fill_parent"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:paddingBottom="10dp"
            android:paddingTop="10dp"
            android:text="@string/invite"
            android:textStyle="normal"
            custom:customFontButtonText="Roboto-Regular.ttf" />
    </LinearLayout>
</LinearLayout>

这个活动的显示效果如下 Layout display

然而,我希望文本“Use comma....”显示在编辑文本框的顶部而不是中间。我尝试设置 gravity:top 但是没有起作用。另外,正如你所看到的,提示信息并没有全部显示出来,有一部分被隐藏了(我希望其余部分能够出现在下一行)。我该如何解决这两个问题?

我的emailText样式如下:

<style name="emailText" parent="android:Widget.EditText">
    <item name="android:ems">10</item>
    <item name="android:inputType">textEmailAddress</item>
    <item name="android:layout_width">fill_parent</item>
    <item name="android:hint">Email</item>
    <item name="android:textColorHint">#B8B8B8</item>
    <item name="android:textSize">15dp</item>
    <item name="android:layout_height">45dp</item>
    <item name="android:shadowColor">@color/white</item>
</style>

我尝试设置重力:顶部,但没有帮助,它仍然居中了? - iTurki
是的,它看起来和图像完全一样。 - Ankush
在输入内容时,下一次是否从顶部开始? - PearsonArtPhoto
@Pearsonartphoto 不,它从中心开始。 - Ankush
@iturki 我试过了,但没有任何区别,我认为在布局文件中输入的值会覆盖在样式文件中输入的值。 - Ankush
显示剩余4条评论
1个回答

7

看起来你忘记了 android:layout_width 标签。如果你添加这个标签和 android:gravity,它应该可以工作。

尝试使用以下代码:

        <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="100dp"
                    android:descendantFocusability="beforeDescendants"
                    android:focusableInTouchMode="true"
                    android:background="@drawable/round_corners" >

                    <EditText
                        android:id="@+id/emailText"
                        style="@style/emailText"
                        android:layout_height="fill_parent"
                        android:layout_width="fill_parent"
                        android:background="@android:color/white"
                        android:hint="@string/email_ids_separated_by_commas"
                        android:gravity="top"
                        android:imeOptions="actionGo"
                        android:layout_margin="10dp" />

                </LinearLayout>

结果:

在此输入图片描述

编辑:

android:padding="10dp"从包装器更改为edittext的android:layout_margin="10dp"


好的。提示现在出现在顶部,但是一部分提示仍然隐藏。如何纠正这个问题? - Ankush
我尝试过这个,但对我来说第二行从未出现。文本继续在第一行上。 - Ankush
尝试不使用自定义样式进行操作,这是唯一的区别。我认为问题在于样式中的宽度标签。 - Greezer
我意识到问题出在<item name="android:inputType">textEmailAddress</item> - Ankush

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