In Android重力を中心に設定した1行の編集テキストを使用しています。エミュレーターでは、これはヒントと点滅するカーソルの両方が表示されます。デバイス(Xperia X10)でテストする場合、どちらもうまくいきません。ヒントテキストも点滅カーソルも表示されません。点滅カーソルは、編集テキストにテキストを入力した場合にのみ表示されます。
これは私の編集テキストです、誰かが何かが欠けているかどうか見ることができますか?
<LinearLayout
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:gravity="center"
Android:layout_gravity="center"
>
<EditText
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:inputType="numberDecimal"
Android:ellipsize="end"
Android:maxLines="1"
Android:gravity="center"
Android:layout_gravity="center"
Android:hint="Some hint text"
></EditText>
</LinearLayout>
私が欲しいもの:
上記のコードで得られるもの(カーソルのない空のedittext):
私はついにそれを機能させるための解決策を見つけました。このEditTextは私のために働きます:(ソニーエリクソンX10とHTCワイルドファイアでテストされました)
<EditText
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:inputType="numberDecimal"
Android:digits="0123456789.,"
Android:ellipsize="start"
Android:maxLines="1"
Android:gravity="center"
Android:hint="Some hint text"
></EditText>
手遅れではないことを願っています。私はこの問題に遭遇しましたが、すべてのデバイスで同じかどうかはわかりませんが、EditText
デフォルトでは下のパディングがあると表示されます。
私のEditTextテキスト値は、重力をCENTER
に設定しているにもかかわらず、常に中心より少し上にあるように見えたので、さらに設定しました。
myEditText.setPadding(0, 0, 0, 0);
これは私のためにそれを修正しました、今私のEditTextは完全に中央にあります:D
editTextのparentLayoutの重力をcenterに設定する必要があると思います
編集:
<LinearLayout
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:gravity="center_horizontal"
Android:id="@+id/linearLayout">
<EditText
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:inputType="numberDecimal"
Android:ellipsize="end"
Android:maxLines="1"
Android:hint="Some hint text"/>
</LinearLayout>
私は重力の組み合わせを試しました:
Android:gravity="top|center_horizontal"
以前の試みは、EditTextをRelativeLayout内にネストして中央に設定することでしたが、見栄えがよくありませんでした。この方法が最適です。
XML:
<EditText Android:id="@+id/email"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:hint="EMAIL"
Android:textStyle="bold"
Android:gravity="center_horizontal"
Android:inputType="textEmailAddress"
Android:layout_margin="10dp"
Android:cursorVisible="false" />
Java:
email.addTextChangedListener(new TextWatcher()
{
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (s.length() > 0) {
// position the text type in the left top corner
email.setGravity(Gravity.LEFT | Gravity.TOP);
email.setCursorVisible(true);
}
else
{
// no text entered. Center the hint text.
email.setGravity(Gravity.CENTER);
email.setCursorVisible(false);
}
}
});