我需要在 Android 中的 EditText中居中显示提示文本。我该怎么做呢?
EditText
为了使提示文本居中以便与 EditText 一起工作,您必须确保定义了 android: 椭圆大小 = “ 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_horizontal"创建了您正在寻找的居中效果。类似地,可以使用 android:gravity="start"将提示文本放在 EditText 视图的开头,依此类推。
android:gravity="center_horizontal"
android:gravity="start"
使用属性
android:gravity="center"
我在每种情况下都使用了这段代码,而且它在不使用 Android: 椭圆大小 = “ 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>
注意: 在标记 TextInputEditText 中,属性
是什么使中心的文本对齐,包括提示文本的处理
用这个机器人: 重力 = “中心”
我用这个为自己工作
android:gravity="Left|center_vertical"
我的问题是 EditText不够大,不能完全适合它的父代(我的情况是 FrameLayout) ,所以只使用 android:gravity="center"(居中垂直,水平,开始,或任何东西)只能适合它在 EditText内,而不是在它的父代,所以我必须在它的父代中居中使用:
FrameLayout
android:layout_gravity="center"
Pd: 我使用 android:background="@android:color/transparent"来隐藏 EditText提示中丑陋的下划线
android:background="@android:color/transparent"
正确答案是
android:gravity="center_horizontal
暗示重力
文本引力
android:gravity="left"