gpt4 book ai didi

c# - 如何在 Xamarin.Forms 中自定义 TabbedPage 的选项卡项?

转载 作者:太空宇宙 更新时间:2023-11-03 13:11:29 25 4
gpt4 key购买 nike

我正在使用 TabbedPage 作为我的 Xamarin.Forms 应用程序的主页面(Xamarin.Forms 版本:2.3.5.239-pre3)。我的 MainActivity 继承自 FormsAppCompatActivity

有四个 ContentPage 类型的页面添加到 TabbedPage 中,如下所示:

<TabbedPage ... >    

<pages:FirstPage Title="Testpage1" Icon="icon.png" />
<pages:SecondPage Title="Testpage2" Icon="icon.png" />
<pages:ThirdPage Title="Testpage3" Icon="icon.png" />
<pages:FourthPage Title="Testpage3" Icon="icon.png" />

</TabbedPage>

但是,选项卡显示如下:

enter image description here

现在我需要更改标题属性的字体大小,以便显示整个标题。最好的方法是什么?我尝试了 CustomRenderer,但我不知道如何访问选项卡项。

我试过:

      [assembly: ExportRenderer(typeof(TabbedPage), typeof(CustomTab))]
namespace AdvancedForms.Droid.CustomRenderer
{
public class CustomTab : TabbedRenderer
{
protected override void DispatchDraw(Canvas canvas)
{
base.DispatchDraw(canvas);
ActionBar actionBar = activity.ActionBar;
// Do Stuff here
}
}
}

但 activity.ActionBar 始终为 null。

最佳答案

您应该寻找 TabLayout,而不是 ActionBar。最后我检查了 TabLayout 是渲染器 View 层次结构中的第二个 child ,所以你应该能够像这样得到它:

var tabLayout = (TabLayout)GetChildAt(1);

完成后,您需要遍历各个选项卡并将所需的字体大小应用于每个选项卡的 TextView 。

有用的提示, View 层次结构如下所示:

MsiTabbedRenderer
FormsViewPager
TabLayout
SlidingTabStrip
TabView
AppCompatImageView
AppCompatTextView
TabView
AppCompatImageView
AppCompatTextView
TabView
AppCompatImageView
AppCompatTextView
...

我用来生成此信息的方法包含在下面供您欣赏:

    public static void DebugLayout(this View self, int indent = 0)
{
// write info about me first
var indents = new string('\t', indent);
System.Diagnostics.Debug.WriteLine(indents + self.GetType().Name);

// check if I'm a view group
var vg = self as ViewGroup;
if (vg == null) return;

// enumerate my children
var children = Enumerable.Range(0, vg.ChildCount).Select(x => vg.GetChildAt(x));

// recurse on each child
foreach (var child in children)
DebugLayout(child, indent+1);
}

关于c# - 如何在 Xamarin.Forms 中自定义 TabbedPage 的选项卡项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44197406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com