586

タブレットプロジェクトでAndroidのHoloテーマを使用しているときに、この問題が発生しています。しかし、画面に白い背景の断片があります。EditTextこのフラグメントにコンポーネントを追加しています。Holo.Lightテーマリソースの背景を設定して、テーマをオーバーライドしようとしました。ただし、テキストカーソル(カラット)は白のままであるため、画面に表示されません(edittextフィールドでかすかに見つけることができます)。

EditTextで暗いカーソルの色を使用する方法を知っている人はいますか?EditTextのスタイルをに設定してみましたが"@android:style/Widget.Holo.Light.EditText"、良い結果は得られませんでした。

4

26 に答える 26

1296

android:textCursorDrawable属性を に設定すると、カーソルの色として が@null使用されます。android:textColor

属性「textCursorDrawable」は、API レベル 12 以降で使用できます

于 2012-02-06T18:29:10.673 に答える
576

レイアウト内

<EditText  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textCursorDrawable="@drawable/color_cursor"
    />

次に drawalble xml を作成します: color_cursor

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <size android:width="3dp" />
    <solid android:color="#FFFFFF"  />
</shape>

EditText プロパティに白いカーソルがあります。

于 2013-03-15T11:22:08.730 に答える
87

すべての答えが茂みの周りを回っているように見えます。

EditTextで、プロパティを使用します。

android:textCursorDrawable="@drawable/black_cursor"

次のように、ドローアブルblack_cursor.xmlをリソースに追加します。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <size android:width="1dp" />
    <solid android:color="#000000"/>
</shape>

これは、必要に応じて、より多様なカーソルを作成する方法でもあります。

于 2012-05-28T19:59:45.343 に答える
45

私は答えを見つけました:)

テーマのeditTextスタイルを次のように設定しました。

<item name="android:editTextStyle">@style/myEditText</item>

次に、次のドローアブルを使用してカーソルを設定しました。

`

<style name="myEditText" parent="@android:style/Widget.Holo.Light.EditText">
    <item name="android:background">@android:drawable/editbox_background_normal</item>
    <item name="android:textCursorDrawable">@android:drawable/my_cursor_drawable</item>
    <item name="android:height">40sp</item>
</style>

`

ここで重要なのはandroid:textCursorDrawableです。

于 2011-08-30T03:57:59.960 に答える
9
Edittext cursor color you want changes your color.
   <EditText  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textCursorDrawable="@drawable/color_cursor"
    />

次に drawalble xml を作成します。color_cursor

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <size android:width="3dp" />
    <solid android:color="#FFFFFF"  />
</shape>
于 2016-12-07T12:09:41.393 に答える
7

私にとっては、AppTheme と値 colors.xml の両方を変更しました

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorControlNormal">@color/yellow</item>
    <item name="colorAccent">@color/yellow</item>
</style>

これがcolors.xmlです

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="yellow">#B7EC2A</color>
</resources>

editText スタイル内に配置した android:textCursorDrawable 属性を @null に取り出しました。これを使ってみたら色が変わらない。

于 2016-02-22T16:53:22.503 に答える
5

唯一の有効な答えは、アクティビティのテーマを変更することです。to を <item name="colorAccent">#000000</item> 使用しないandroid:textCursorDrawable@nullください。カーソルをドラッグする場合、これはカーソル自体のみに関係し、カーソルの下のピンには関係しないためです。テーマの解決策は最も深刻なものです。

于 2017-10-16T12:05:31.197 に答える
3

ダイアログでこれらすべての手法を試すのに多くの時間を費やした後、私は最終的にこのアイデアを思いつきました: TextInputLayout ではなく、ダイアログ自体にテーマをアタッチします。

<style name="AppTheme_Dialog" parent="Theme.AppCompat.Dialog">

    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorWhite</item>
    <item name="colorAccent">@color/colorPrimary</item>

</style>

onCreate 内:

public class myDialog extends Dialog {

private Activity activity;
private someVars;

public PopupFeedBack(Activity activity){
    super(activity, R.style.AppTheme_Dialog);
    setContentView(R.layout.myView);
    ....}}

乾杯 :)

于 2020-04-10T14:44:29.197 に答える
3

次のように、重要なテーマでそれを行うことができます。

<style name="Theme.App" parent="Theme.MaterialComponents.DayNight.NoActionBar">
    ...
    <item name="android:colorControlNormal">#ff0000</item>
    <item name="android:colorControlActivated">#ff0000</item>
    <item name="android:colorControlHighlight">#ff0000</item>
    ...
</style>

チェックボックスとラジオの色も変更したい場合は、次の行を追加します。

<item name="colorAccent">#ff0000</item>

Android API 21+でテストしました

于 2021-04-23T15:45:00.153 に答える
0

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">#36f0ff</item>
    <item name="colorPrimaryDark">#007781</item>
    <item name="colorAccent">#000</item>
</style>

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

styles.xm の colorAccent の色を変更します。これは簡単です。

于 2016-08-25T14:26:14.810 に答える
-1
<style name="CustomTheme" parent="AppTheme">
    <item name="colorAccent">@color/yourColor</item>
</style>

これをスタイルに追加し、Edittext でテーマを次のように設定します。

android:theme="@style/CustomTheme"

以上です!

于 2022-01-19T18:15:07.140 に答える