我需要EditText在Android中将提示文本居中。我该怎么做呢?
我需要EditText在Android中将提示文本居中。我该怎么做呢?
Answers:
为了使提示文本能够与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" />
gravity重要。
我在任何情况下都使用了此代码,并且无需使用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" />
不幸的是,当布局方向为RTL时,没有一个答案能帮助我对齐以LTR语言编写的提示。我需要一种翻译应用程序中的这种布局,以使覆盖图标不会干扰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.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中,该属性
android:gravity =“ center”
是什么使包含提示文本的文本居中对齐
android:textAlignment="center"在EditText中使用,对我有用
这为我工作:
<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>