【发布时间】:2017-05-16 17:40:15
【问题描述】:
我正在尝试显示一个用空格分隔的字母的文本框。
EditText wordText = (EditText) findViewById(R.id.word_text);
wordText.setPaintFlags(wordText.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
InputFilter[] filterArray = new InputFilter[2];
filterArray[0] = new InputFilter.AllCaps();
filterArray[1] = new InputFilter.LengthFilter(10);
wordText.setGravity(Gravity.CENTER);
这是布局文件。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/match_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_marginTop="100dp">
<EditText android:id="@+id/word_text"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:hint="Your Word"
android:maxLength="15"
android:inputType="textCapWords"/>
<Button
android:id="@+id/match_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="start"
android:text="Match"
android:layout_marginTop="50dp"/>
</LinearLayout>
如何在 API 12 中的字母之间添加空格。我不想使用 setLetterSpacing()。
另外,当我开始输入时,setGravity(Gravity.CENTER) 导致我的字母从框的中心出现。我如何让它从左到右出现?如果我设置 Gravity.LEFT,EditText 本身会在 LinearLayout 中向左移动。谁能帮忙?
【问题讨论】:
-
为什么你不想使用 setLetterSpacing()?对于文本的对齐,请在您的 XML 布局或适当的 API 函数中使用 android:layout_gravity="left"。它还可以询问您 android:layout_gravity="start" 的使用情况。
-
我建议你也添加布局文件,
-
正如我所提到的,我收到编译器错误,因为我的 minSdk 是 API 12,其中 setLetterSpacing 不可用。当我使用 Gravity.Left 时,我的 EditText 本身会移动到屏幕的左侧。我希望它位于中心,但是当我键入时,字母应该从左侧出现。有可能这样做吗?
标签: android android-layout android-edittext