在我的应用程序中,我想更改一个地方的Entry光标默认颜色。除此之外,首选默认光标颜色。
我可以使用Entry渲染器中的 Control.TintColor 更改ios光标颜色。
但是当我尝试使用styles.xml中的colorAccent项目(例如:#ffffff)更改android条目光标颜色时,它会更改所有位置的光标颜色,并且没有任何控制权。
在ios和android中是否有任何正确的方法来实现这一目标?
答案 0 :(得分:2)
适用于Android自定义渲染器:
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
IntPtr IntPtrtextViewClass = JNIEnv.FindClass(typeof(TextView));
IntPtr mCursorDrawableResProperty = JNIEnv.GetFieldID(IntPtrtextViewClass, "mCursorDrawableRes", "I");
JNIEnv.SetField(Control.Handle, mCursorDrawableResProperty, Resource.Drawable.my_cursor);
}
my_cursor
在Drawable
文件夹中定义,您可以尝试将其设为Shape
:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
// colorCursors is defined in the Resources/Colors file
<solid android:color="@color/colorCursors"></solid>
<size android:width="2dp" />
</shape>