Xamarin Android 中修改 TabbedPage 标题字体
来源:互联网 发布:知乎洛基香港代购苹果 编辑:程序博客网 时间:2024/05/19 06:51
写在前面,本人在 Stackoverflow 上面做 Xamarin 的技术支持也有一段时间了,最近都比较有空,就在这总结一下自己解决的许多问题,希望能帮到那些有限的,屈指可数的国内 Xamarin 开发者
我只负责解决 Xamarin.Android 这一块的问题
问题来源
https://stackoverflow.com/questions/46513240/xamarin-forms-change-the-tabbar-size
分析
TabbedPage
中没有办法直接修改字体及大小,必须要使用 Renderer
,然后在 native 中去修改相应的属性,在 native Android 中 TabbedPage
会渲染成 TabLayout
, 所以我们要研究 如何修改 TabbedPage
中的字体
TabLayout 中修改
https://stackoverflow.com/questions/30754203/tablayout-tab-style
Renderer
TabbedPage1
<?xml version="1.0" encoding="utf-8" ?><local:StyledTabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="FormsIssue01.TabbedPage1" xmlns:local="clr-namespace:FormsIssue01" > <!--Pages can be added as references or inline--> <ContentPage Title="Over" /> <ContentPage Title="FaceBook" /> <ContentPage Title="Youtube" /> <ContentPage Title="Contact" /> <ContentPage Title="Contact2" /> <ContentPage Title="Contact3" /></local:StyledTabbedPage>
StyledTabbedPage
public class StyledTabbedPage : TabbedPage{}
StyledTabbedPageRenderer
public class StyledTabbedPageRenderer : TabbedPageRenderer{ private TabLayout tabLayout = null; protected override void OnElementChanged(ElementChangedEventArgs<TabbedPage> e) { base.OnElementChanged(e); this.tabLayout = (TabLayout)this.GetChildAt(1); //Method 2 changeTabsFont(); //Method 1 tabLayout.TabMode = TabLayout.ModeScrollable; tabLayout.TabGravity = TabLayout.GravityFill; } private void changeTabsFont() { //Typeface font = Typeface.CreateFromAsset(Android.App.Application.Context.Assets, "fonts/" + Constants.FontStyle); ViewGroup vg = (ViewGroup)tabLayout.GetChildAt(0); int tabsCount = vg.ChildCount; for (int j = 0; j < tabsCount; j++) { ViewGroup vgTab = (ViewGroup)vg.GetChildAt(j); int tabChildsCount = vgTab.ChildCount; for (int i = 0; i < tabChildsCount; i++) { Android.Views.View tabViewChild = vgTab.GetChildAt(i); if (tabViewChild is TextView) { //((TextView)tabViewChild).Typeface = font; ((TextView)tabViewChild).TextSize = 6; } } } }}
注意
Method 1 和 Method 2 不兼容,调整字体可以,但是不好看,推荐 Method 1
阅读全文
1 0
- Xamarin Android 中修改 TabbedPage 标题字体
- xamarin IOS对xamarin.forms的Tabbedpage的renderer实现
- 修改UINavigationItem标题字体
- android 修改窗体标题的字体式样和…
- android 修改窗体标题的字体式样和…
- IOS中修改导航默认标题颜色、字体
- iOS 中修改导航默认标题颜色、字体
- IOS中修改导航默认标题颜色、字体
- 兔子-android studio中修改Logcat字体
- 如何修改程序标题, 菜单的字体
- ios修改导航栏标题字体颜色
- android 修改窗体标题的字体式样和背景图(自定义标题栏)
- Android Tablayout + viewpager 切换时修改tablayout title(标题)的字体颜色和字体大小
- Android TabLayout修改标题
- 修改android系统 字体
- Android修改程序字体
- Android - Toast字体修改
- 【Android】字体修改
- 趣图 | 程序员眼中的 Eclipse
- Reverse digits of an integer.
- C++中构造函数的执行顺序
- HDU5459 Jesus Is Here
- 排序
- Xamarin Android 中修改 TabbedPage 标题字体
- Java9之HttpClientAPI实战详解
- NOI2014魔法森林题解报告
- HTML 地址 缩写和首字母缩写
- hdu_4422_题意很重要
- 数据结构与算法
- 深入探讨Java字符串的拼接
- LWC 52:689. Maximum Sum of 3 Non-Overlapping Subarrays
- 用弹性布局实现色子