在我的xamarin android应用程序中,我离开了滑动navigationView。我有这个xml文件来显示菜单项
List<String> list = List.of("first", "second", "third");
问题是我想要更改单个项目的textSize。我使用自定义样式,但我能够改变所有项目的大小。我如何才能为单个项目做到这一点?非常感谢你。
答案 0 :(得分:2)
非常感谢你的帮助。是的,按照这个例子和链接我修复了这个问题。执行此操作的代码是这样的。我添加这两个方法来改变textSiz并且可以工作。
private void ChangeSwipeMenuItemsTextSize() {
int LeftnavigationSize = navigationView.Menu.Size();
for (int i = 0; i < LeftnavigationSize; i++)
setTextColorForMenuItem(navigationView.Menu.GetItem(i));
}
private void setTextColorForMenuItem(IMenuItem menuItem) {
var tf = Typeface.CreateFromAsset(Assets, "fonts/Montserrat.ttf");
SpannableString spanString = new SpannableString(menuItem.TitleFormatted.ToString());
spanString.SetSpan(new RelativeSizeSpan(1.3f),0,spanString.Length(), SpanTypes.ExclusiveExclusive);
menuItem.SetTitle(spanString);
}
答案 1 :(得分:0)
我没有找到使用菜单在xml中执行此操作的方法,但您可以在代码中执行此操作。看一下这篇博客文章:Change text color of MenuItem in Navigation Drawer,作者使用以下代码更改单个项目的文本颜色:
private void setTextColorForMenuItem(MenuItem menuItem, @ColorRes int color) {
SpannableString spanString = new SpannableString(menuItem.getTitle().toString());
spanString.setSpan(new ForegroundColorSpan(ContextCompat.getColor(this, color)), 0, spanString.length(), 0);
menuItem.setTitle(spanString);
}
要更改字体大小,您还可以使用SpannableString
,如下所示:
spanStringsetSpan(new RelativeSizeSpan(1.2f),
0,
spanString.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
此代码在java中,但可以直接转换为C#。