<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#ffffff" />
<stroke android:width="1dp"
android:color="#000000" />
</shape>
我在setBackgroundResource(R.drawable.selfbg);
中使用此代码
当我使用此代码时,光标在Edittext中不可见。
答案 0 :(得分:34)
你试过吗?
将android:textCursorDrawable
属性设置为@null会导致使用android:textColor
作为光标颜色。
答案 1 :(得分:8)
尝试在EditText中添加以下内容:
android:textCursorDrawable="@null"
android:background="@null"
答案 2 :(得分:5)
尝试:
<item name="android:textCursorDrawable">@null</item>
虽然需要API-12及以上版本。
答案 3 :(得分:3)
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textCursorDrawable="@drawable/color_cursor"
android:background="@drawable/R.drawable.selfbg"/>
Than create drawalble xml: color_cursor
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<size android:width="2dp" />
<solid android:color="#000000" />
</shape>
答案 4 :(得分:0)
答案 5 :(得分:0)
试试这个
在EditText中,使用属性:
android:textCursorDrawable="@drawable/black_cursor"
并将drawable 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="0dp" />
</shape>
答案 6 :(得分:0)
如果您希望仅通过Java代码完成此操作 试试这个
在TextView类中,您可以找到以下代码
case com.android.internal.R.styleable.TextView_textCursorDrawable:
mCursorDrawableRes = a.getResourceId(attr, 0);
break;
但是方法textCursorDrawable()只存在于R.attr中,如果你想设置这个属性,你只能通过在XML文件中包含一个editText来调用下面的构造方法。
public EditText(Context context, AttributeSet attrs) {
this(context, attrs, com.android.internal.R.attr.editTextStyle);
}
答案 7 :(得分:0)
MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText editText = findViewById(R.id.editText);
editText.requestFocus();
editText.setSelection(0);
}
activity_main
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
layout="@layout/content_main"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
content_main
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
正如您所看到的,我的EditText不在activity_main中,而是在content_main中,无论如何我希望它能同样起作用,但我将其包含在activity_main中,但是不...不幸的是,它不是那样工作的。所以我像这样改变了我的activity_main,它就像一个魅力。
**activity_main**
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
答案 8 :(得分:0)
我认为您必须在xml的EditText中包含requestFocus,这样它才能起作用,相反,我看到许多示例,未经我测试它们都无法正常工作,只是在添加requestFocus时才起作用。