17

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):

編集テキストにはヒントテキストが表示されず、カーソルが点滅しません

4

6 に答える 6

46

私はついにそれを機能させるための解決策を見つけました。この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>
于 2011-06-09T11:59:11.210 に答える
5

手遅れではないことを願っています。この問題に遭遇しました。すべてのデバイスで同じかどうかはわかりませんがEditText 、デフォルトで下部にパディングが表示されます

EditTextテキスト値は、重力を設定しているにもかかわらず、常に中心より少し上にあるように見えたCENTERので、さらに次のように設定しました。

myEditText.setPadding(0, 0, 0, 0);

これで修正され、EditTextが完全に中央に配置されました:D

于 2015-05-20T15:53:46.913 に答える
4

EditTextのparentLayoutの重力中央に設定する必要があると思います

編集 :

<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>
于 2011-05-26T09:04:10.300 に答える
1

私は重力の組み合わせを試しました:

android:gravity="top|center_horizontal"

以前の試みは、EditTextをRelativeLayout内にネストして中央に設定することでしたが、見栄えがよくありませんでした。この方法が最適です。

于 2012-05-01T08:32:22.400 に答える
0
  • XMLファイルで重力CENTER_HORIZONTALを追加して、ヒントをcenter.CURSORVISIBLE = falseに設定し、最初にクリックしたときにカーソルが表示されないようにします。
  • Javaでは、addTextChangedListenerを使用します。ユーザーがテキストを追加するときに、重力を左に変更し、カーソルも表示します。

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);
                }
            }
        });
于 2017-02-22T13:39:45.957 に答える
-1

スタイルタグに重力を追加する代わりに、レイアウトファイル内に重力を追加します。

于 2011-05-26T09:08:43.073 に答える