我的Entry
中有一个ContentPage
,我正在使用Xamarin Android进行渲染。
这里我的问题是EditText
背景颜色是白色,光标颜色也是白色。
在这里,我想将光标颜色更改为黑色。
有没有办法改变光标颜色?
这是我的代码。
输入ExtendedEntry:
public class ExtendedEntry : Entry { }
在内容页面中使用ExtendedEntry:
var txtPhoneNumber = new ExtendedEntry { Placeholder = "Phone Number", Keyboard = Keyboard.Numeric, TextColor = Color.Black };
在Xamarin Android中呈现ExtendedEntry:
using Xamarin.Forms.Platform.Android;
using Xamarin.Forms;
[assembly: ExportRenderer(typeof(ExtendedEntry), typeof(ExtendedEntryRender))]
namespace Project.Droid
{
public class ExtendedEntryRender : EntryRenderer
{
// Override the OnElementChanged method so we can tweak this renderer post-initial setup
protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);
if (e.OldElement == null)
{ // perform initial setup
// lets get a reference to the native control
var nativeEditText = (global::Android.Widget.EditText)Control;
// do whatever you want to the textField here!
nativeEditText.SetBackgroundResource(Resource.Drawable.text_box);
}
}
}
}
任何人都可以帮我解决这个问题吗? 提前谢谢。
答案 0 :(得分:2)
您可以使用以下方式更改光标颜色:
IntPtr IntPtrtextViewClass = JNIEnv.FindClass(typeof(TextView));
IntPtr mCursorDrawableResProperty = JNIEnv.GetFieldID (IntPtrtextViewClass, "mCursorDrawableRes", "I");
JNIEnv.SetField (Control.Handle, mCursorDrawableResProperty, 0); // replace 0 with a Resource.Drawable.my_cursor
0将与Entry上的TextColor保持相同的颜色。
答案 1 :(得分:-2)
编辑:要更改光标颜色,唯一的选择是通过添加例如:
来更改主题主题=&#34; android:style / Theme.Holo.light&#34;在MainActivity中