如何将提示文本置于Android中的EditText中心?

时间:2012-07-03 00:37:52

标签: android

我需要将提示文本置于Android中的EditText中。我该怎么做?

15 个答案:

答案 0 :(得分:71)

为了使提示文本居中与EditText一起使用,你必须确保定义了android:ellipsize =“start”。我不知道为什么这会使它起作用,但确实如此。

从个人代码中提取的示例:

<EditText
    android:id="@+id/player2Name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:ellipsize="start"
    android:gravity="center_horizontal"
    android:hint="@string/player2_name"
    android:inputType="textCapWords|textPersonName"
    android:singleLine="true" />

答案 1 :(得分:35)

实际上android:gravity="center_horizontal"会产生“中心”效应。你可以使用

  

机器人:比重= “开始”

将提示文本放在EditText视图的开头,依此类推。

答案 2 :(得分:29)

使用此xml属性:

  

机器人:比重= “中心”

答案 3 :(得分:10)

使用属性

android:gravity="center"

答案 4 :(得分:9)

我在任何情况下都使用此代码,并且在没有使用 android:ellipsize =“start”在中心进行提示的情况下完美运行。

  <EditText
    android:id="@+id/player2Name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:hint="robi"
    android:inputType="text" />

答案 5 :(得分:5)

我认为答案应该是:

android:textAlignment="center"

答案 6 :(得分:5)

textAlignment为我工作。

cdev = cdev_alloc();//allocate memory to Char Device structure
cdev->ops = &fops;//link our file operations to the char device
result=cdev_add(cdev,mydev,1);//Notify the kernel abt the new device

答案 7 :(得分:4)

不幸的是,这两个答案都没有帮我调整用LTR语言编写的提示,而布局方向是RTL。我在一种翻译应用程序中需要这样的布局,以使叠加图标不会干扰RTL文本。但是这个技巧不适用于提示,而没有任何文本(图标出现在提示上方),我来到以下java解决方案来布局问题:

actions

诀窍在于从右向左标记,以预先添加从左到右的字符串。它似乎有效,但是有人知道更优雅的解决方案吗?

答案 8 :(得分:4)

<android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginEnd="16dp"
        android:layout_marginStart="16dp"
        android:layout_marginTop="8dp">

        <android.support.design.widget.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:hint="ENTER PIN"
            android:inputType="numberPassword" />
    </android.support.design.widget.TextInputLayout>

注意:在标签TextInputEditText中,属性

  

机器人:比重= “中心”

是协调文本在中心的交易,包括提示文本

答案 9 :(得分:4)

使用这个:android:gravity =“center”

答案 10 :(得分:2)

在EditText中使用android:textAlignment="center",它适用于我

答案 11 :(得分:1)

这对我有用:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/nombreslayoutinput">
    <EditText
        android:id="@+id/nombreslayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/nombres"
        android:layout_centerInParent="true"
        android:gravity="center|center_vertical"
        android:ellipsize="start"
        android:inputType="textCapWords|textPersonName"

        />
</android.support.design.widget.TextInputLayout>

答案 12 :(得分:1)

我用这个为我工作

android:gravity="Left|center_vertical"

答案 13 :(得分:1)

正确答案是

android:gravity="center_horizontal

答案 14 :(得分:0)

我的问题是EditText的大小不足以完全适合其父对象(在我的情况下为FrameLayout),因此仅使用android:gravity="center"(center_vertical,horizo​​ntal,start,或其他任何形式)仅适合放在EditText的内部,而不适合其父级,因此我不得不使用以下方法将EditText置于其父级的中心:

android:layout_gravity="center"

pd:我用android:background="@android:color/transparent"隐藏了EditText提示中难看的下划线