Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin 是否可以设置EditText提示字体?_Xamarin_Xamarin.android - Fatal编程技术网

Xamarin 是否可以设置EditText提示字体?

Xamarin 是否可以设置EditText提示字体?,xamarin,xamarin.android,Xamarin,Xamarin.android,我正在尝试设置EditText提示字体 我从android上找到了一些解决方案,但无法在XamarinAndroid上实现它们 其中之一是: LayoutInflater inflater = LayoutInflater.From(Application.Context); TextView hintTextView = (TextView)inflater.Inflate(com.android.internal.R.layout.textview_hint, null); hintTex

我正在尝试设置EditText提示字体 我从android上找到了一些解决方案,但无法在XamarinAndroid上实现它们

其中之一是:

LayoutInflater inflater = LayoutInflater.From(Application.Context); 
TextView hintTextView = (TextView)inflater.Inflate(com.android.internal.R.layout.textview_hint, null);
hintTextView.SetTypeface(typeface);
但我找不到内部资源

com.android.internal.R.layout.textview_hint
正如我看到的,提示只是文本视图。是否可以在应用程序主题中设置其样式?

另一个解决方案是从这个主题中进行反思

但是我找不到你

var mail = FindViewById<EditText>(Resource.Id.email_input);
Field hintLayoutField = mail.Class.GetDeclaredField("mHintLayout");
var-mail=findviewbyd(Resource.Id.email\u输入);
Field hintLayoutField=mail.Class.GetDeclaredField(“mHintLayout”);

我曾使用反射设置提示字体,但我使用了
书法
项目一段时间,它工作得很好,最好的是,它能自动处理所有提示……;-)

安装
书法
软件包后,只需分配新的
fontPath
属性:

<TextView
    android:editable="true"
    fontPath="BalooBhaina-Regular.ttf"
    android:hint="StackOverflow Hint"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"/>  

书法很好。仅供参考hintTextView的最后一个示例。SetTypeface(typeface)不会更改字体,但您向我展示了如何查找内部资源。@DimaBabich所有用于更改提示文本的各种反射方法都要求您在视图膨胀后执行此操作,我使用的是HintLayout字段上的
GetDeclaredField
,将其设置为可访问,并通过反射类字段获得相关textview的布局,并设置其TextPaint的字体,这是在视图膨胀之后,通常通过将此工作发布到主循环器(通过Runnable是最简单的)。。。。一个真正的痛苦,因此我一直在使用书法的原因…;-)
int id = Resources.GetIdentifier("textview_hint", "layout", "android");
TextView hintTextView = (TextView)inflater.Inflate(id, null);
hintTextView.SetTypeface(typeface);