Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中,如何将提示文本集中在EditText中?_Android - Fatal编程技术网

在Android中,如何将提示文本集中在EditText中?

在Android中,如何将提示文本集中在EditText中?,android,Android,我需要将提示文本放在Android中的EditText中。我该怎么做?为了使提示文本居中以使用EditText,您必须确保定义了android:ellipsize=“start”。我不知道这为什么会起作用,但它确实起作用了 从个人代码中提取的示例: <EditText android:id="@+id/player2Name" android:layout_width="wrap_content" android:layout_height="wrap_conten

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

为了使提示文本居中以使用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" />

使用此xml属性:

android:gravity=“center”


实际上,
android:gravity=“center\u horizontal”
创建了您想要的居中效果。类似地,您可以使用android:gravity=“start”将提示文本放在EditText视图的开头,依此类推。

使用属性

android:gravity="center"

我在任何情况下都使用了这段代码,而且它在不使用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" />

不幸的是,这两个答案都没有帮助我对齐用LTR语言编写的提示,而布局方向是RTL。我需要在一种翻译应用程序中使用这种布局,以使覆盖图标不会干扰RTL文本。但是这个技巧在没有任何文本的情况下对提示不起作用(提示上方出现图标),因此我采用了以下java解决布局问题的方法:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
. . .
        if (isRightToLeft()){
            EditText guess = (EditText) rootView.findViewById(android.R.id.text1);
            CharSequence hint = "\u200F" + guess.getHint();
            guess.setHint(hint);
        }
. . .
}

诀窍是在从右到左的标记中预加一个从左到右的字符串。这似乎有效,但有人知道更优雅的解决方案吗?

我认为答案应该是:

android:textAlignment="center"

文本对齐为我工作

textAlignment="center"
这对我很有用:

<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>

在EditText中使用android:textAlignment=“center”,它对我有用
<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>
注意:在标记TextInputItemText中,属性

android:gravity=“center”


是什么让文本居中对齐,包括提示文本使用这个:android:gravity=“center”

我使用这个,为我工作

android:gravity="Left|center_vertical"

我的问题是,
EditText
不太大,不足以完全放在其父对象中(
FrameLayout
),所以只需使用
android:gravity=“center”
(center\u vertical,horizontal,start,或其他什么)就可以放在
EditText
中,而不是放在其父对象中,因此,我必须使用以下方法将
EditText
集中在其父对象中:

android:layout\u gravity=“center”

pd:我使用了
android:background=“@android:color/transparent”
EditText
hint

中隐藏丑陋的下划线,正确答案是

android:gravity="center_horizontal

使用xml属性android:gravity=“center”是的,这是将文本定位在准确的中心位置所必需的。感谢您的发布,欢迎来到StackOverflow!是的,ellipsize=“start”确实会影响这一点。也不知道为什么。没有它,我就看不到提示。我认为我来这里太晚了,但今天我看到了这个答案,并相信这里不需要安卓:ellipsize=“start”来创建提示中心,AFAIK。看看我的答案。可能也是有用的。如其他答案所述,是安卓:gravity=“center”(或类似变体)将文本居中,而不是省略。为什么接受这个答案?我想只有
重力
重要。这可能在旧版Android中错误地起作用,现在它不起作用了。是的,这是文本居中所必需的。垂直和水平。谢谢。我试过使用android:ellipsize=“start”,但并没有改变。添加
android:gravity=“center\u horizontal”
成功了。再次感谢。我同意,这是正确的答案,仅将文本居中,而不是提示。请在投稿前阅读现有答案。已接受的答案中已包含这部分代码。