Xamarin Forms中如何动态设置Android Toolbar标题字体大小?
动态设置Xamarin Forms Android Toolbar的标题字体大小及样式
我刚好处理过类似的需求,要绕过资源ID直接动态调整Toolbar标题的字体大小和样式,其实可以直接操作Toolbar内部的标题TextView,具体步骤如下:
找到Toolbar内部的标题TextView
Toolbar的标题本质是它内部的一个TextView控件,你可以通过两种方式定位到它:- 直接通过系统内置ID查找(最稳妥)
var titleTextView = toolbar.FindViewById<TextView>(Android.Resource.Id.Title); - 遍历Toolbar的子视图匹配标题文本
TextView titleTextView = null; for (int i = 0; i < toolbar.ChildCount; i++) { var child = toolbar.GetChildAt(i); if (child is TextView textView && textView.Text == toolbar.Title) { titleTextView = textView; break; } }
- 直接通过系统内置ID查找(最稳妥)
直接修改TextView的样式属性
找到这个TextView之后,就可以像操作普通TextView一样,动态设置各种样式属性了:
if (titleTextView != null) { // 设置字体大小,单位为sp titleTextView.TextSize = 20; // 设置标题文本颜色 titleTextView.SetTextColor(Android.Graphics.Color.ParseColor("#FF4081")); // 设置粗体字体 titleTextView.Typeface = Android.Graphics.Typeface.Create("sans-serif-medium", Android.Graphics.TypefaceStyle.Bold); // 还可以设置其他属性,比如字间距、对齐方式等 titleTextView.LetterSpacing = 0.1f; titleTextView.Gravity = Android.Views.GravityFlags.CenterVertical; }
注意:要确保在调用这段代码前,Toolbar已经完成初始化并且标题文本已经设置,否则可能会找不到对应的TextView控件。
内容的提问来源于stack exchange,提问作者Stephen
相关产品推荐
相关产品推荐

