在Android中,如何将提示文本集中在EditText中?
我需要将提示文本放在Android中的在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
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”
成功了。再次感谢。我同意,这是正确的答案,仅将文本居中,而不是提示。请在投稿前阅读现有答案。已接受的答案中已包含这部分代码。