web-dev-qa-db-ja.com

EditTextカーソルがAndroid 4.0で非表示になっている

Android 4.0にEditText入力があり、その中にカーソルが表示されません。

カーソルが入力フィールドに表示されない原因は何ですか?

21
Akmal Rasool

作るAndroid:cursorVisible="true"

そして

Android:textColorを使用した場合は、Android:textCursorDrawable属性を@nullに設定します。

幸せなコーディング;)

60
Pratik Butani

同様の問題がありましたが、実際にはカーソルが白で、背景が白でした。どういうわけか、コード内でカーソルを黒に変更できるようにする必要があり、このアプローチを使用しました。

これを含むtextbox.axmlというレイアウトリソースを作成しました

   <?xml version="1.0" encoding="utf-8"?>
   <EditText xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:text="This is a template"
    Android:background="#ffffff"
    Android:textColor="#000000"
    Android:cursorVisible="true"
    Android:textCursorDrawable="@null" />

次に、このレイアウトをコード(Xamarinを使用しているためC#)に適用しました。

    EditText txtCompletionDate = (EditText)LayoutInflater.Inflate(Resource.Layout.textbox, null);

しかし、Javaでも同様です。

9
Ben Messenegr

Xmlファイルの編集テキストにこの行を追加します。

Android:textCursorDrawable="@null"
4
Emran Hamza

まったく同じ問題が発生しました-ユーザーがいくつかの文字を入力した後にのみカーソルが表示されました。ここにリストされている解決策を試しましたが、私のデバイスでは成功しませんでした。私にとって実際に機能するのは、編集テキストに空白のテキストを設定することです。

EditText editText = findViewById(R.id.edit_text);
editText.setText("");

これによりユーザー入力が「偽装」され、カーソルが表示されます。

4
Anhayt Ananun

私の問題は、AppCompatテーマを使用していたことですが、AppCompatスタイルを正しく適用するためにAppCompatEditTextを拡張する必要があるEditTextを拡張するカスタムビュークラスがいくつかありました。

4
Darren Hinderer

それが役立つかもしれない人に私の個人的な修正を追加するだけです。私はここですべてを試しましたが、強制的にAndroid:background="@null"は、右揃えのTextEditの最後にのみ非常に小さなカーソルを引き起こしていました(他の場所では正常に機能していました)。

単にAndroid:padding="1dp"私のTextEditで問題が解決しました。

1
apouche

Xmlファイルの編集テキストにこの行を追加します。

Android:cursorVisible="true"
1
Droidee

上記のように、これが実際の行です
Android:textCursorDrawable = "@ null"

 <EditText
               Android:textCursorDrawable="@null"
                Android:imeOptions="actionNext"
                Android:id="@+id/edSMobile"
                 Android:layout_width="match_parent"
                Android:layout_height="wrap_content"                    
                Android:background="@drawable/edit_corner"                    
                Android:inputType="phone" />
0
influx

EditTextにボーダー付きのバックグラウンドドローアブルがある場合、カーソルはボーダーに表示されて見えなくなります。問題を修正するには、EditTextのパディングを少量に設定します。 5 dp

0
John Warren

何が原因なのかがわかりました。

アプリケーションのテーマから継承する必要があります。広告申込情報が正確に何である必要があるのか​​わかりませんが、Android:Themeにはそれがあるので、継承することでうまくいきます。

デフォルトのAppBaseThemeを使用すると機能します(親にはAndroid:Theme.Lightがあります)。

AppBaseThemeを使用するには、マニフェストのアプリケーションタグにAndroid:theme="@style/AppBaseTheme"を挿入します。スタイルタグにparent="Android:Theme"が含まれている限り、カスタムスタイルと複数の継承レベルを使用することもできます。前述のように、特定の広告申込情報を使用するだけで、それがなくても実現できる可能性があります。しかし、私はそれらがどうなるかわかりません。

カスタムテーマが必要ない場合は、使用できます

Android:theme="@Android:style/Theme"

0
user2312638

私の場合、ユーザーの言語が英語の場合はカーソルが表示されますが、ユーザーの言語がアラビア語に変更された場合は表示されません。

これを修正するために、カーソル用のカスタムドローアブルを作成しました。

Drawable/black_cursor.xmlのCursur shap

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:shape="rectangle" >
    <solid Android:color="#a8a8a8"/><!-- This is the exact color of Android edit text Hint -->
    <size Android:width="1dp" />
</shape>

テキストを編集:

<EditText
    Android:id="@+id/user_name"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:textSize="20sp"
    Android:textCursorDrawable="@drawable/black_cursor"
    />
0
Gem