防止选项卡以表格形式显示在应用程序前面';Xamarin中的工具栏 总结

防止选项卡以表格形式显示在应用程序前面';Xamarin中的工具栏 总结,xamarin,xamarin.android,tabs,toolbar,androidx,Xamarin,Xamarin.android,Tabs,Toolbar,Androidx,我需要有3个标签的权利下方的应用程序的工具栏,最好没有一条线分隔标签和工具栏。但他们被展示在吧台前,几乎完全隐藏了它 上下文 我正在开发一款Android应用程序,从侧面打开抽屉布局/导航视图,您可以在页面之间导航,其中一个页面的顶部、工具栏的正下方包含几个选项卡 我试着将TabLayout放到页面中,但选项卡总是位于工具栏的后面或前面 将TabLayout放入工具栏所在的AppBarLayout似乎不起作用,选项卡正确显示在工具栏下方,但该选项卡的内容也显示在工具栏内部 main.xml中的工

我需要有3个标签的权利下方的应用程序的工具栏,最好没有一条线分隔标签和工具栏。但他们被展示在吧台前,几乎完全隐藏了它

上下文 我正在开发一款Android应用程序,从侧面打开抽屉布局/导航视图,您可以在页面之间导航,其中一个页面的顶部、工具栏的正下方包含几个选项卡

我试着将TabLayout放到页面中,但选项卡总是位于工具栏的后面或前面

将TabLayout放入工具栏所在的AppBarLayout似乎不起作用,选项卡正确显示在工具栏下方,但该选项卡的内容也显示在工具栏内部

main.xml中的工具栏和FragmentContainer

page1.xml中的表格布局示例
一直在四处寻找我的问题的解决方案,偶然发现了一个类似问题的答案

我将工具栏表格布局(其可见性设置为“已消失”)和片段容器移动到它自己的名为app\u bar\u main的xml中

然后我将其包含在我的主布局中中:

<include
    layout="@layout/app_bar_main" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" />
    public override void OnViewCreated(View view, Bundle savedInstanceState)
    {
        viewPager = view.FindViewById<ViewPager>(Resource.Id.home_content_pager);
        viewPager.Adapter = new HomeAdapter(ChildFragmentManager);

        tabLayout = Activity.FindViewById<TabLayout>(Resource.Id.tablayout);
        tabLayout.Visibility = ViewStates.Visible;
        tabLayout.SetupWithViewPager(viewPager);

        base.OnViewCreated(view, savedInstanceState);
    }


    public override void OnDestroyView()
    {
        tabLayout.Visibility = ViewStates.Gone;
        base.OnDestroyView();
    }

应该显示选项卡的片段实现了以下覆盖:

<include
    layout="@layout/app_bar_main" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" />
    public override void OnViewCreated(View view, Bundle savedInstanceState)
    {
        viewPager = view.FindViewById<ViewPager>(Resource.Id.home_content_pager);
        viewPager.Adapter = new HomeAdapter(ChildFragmentManager);

        tabLayout = Activity.FindViewById<TabLayout>(Resource.Id.tablayout);
        tabLayout.Visibility = ViewStates.Visible;
        tabLayout.SetupWithViewPager(viewPager);

        base.OnViewCreated(view, savedInstanceState);
    }


    public override void OnDestroyView()
    {
        tabLayout.Visibility = ViewStates.Gone;
        base.OnDestroyView();
    }
public override void OnViewCreated(视图,Bundle savedInstanceState)
{
viewPager=view.FindViewById(Resource.Id.home\u content\u pager);
viewPager.Adapter=新的家庭适配器(ChildFragmentManager);
tabLayout=Activity.findviewbyd(Resource.Id.tabLayout);
tabLayout.Visibility=ViewStates.Visible;
tabLayout.SetupWithViewPager(viewPager);
base.OnViewCreated(视图,savedInstanceState);
}
公共覆盖无效OnDestroyView()
{
tabLayout.Visibility=ViewStates.Gone;
base.OnDestroyView();
}
“OnDestroyView”覆盖将表格布局的可见性设置为“已消失”,因此所有其他片段都不会显示选项卡

这样,Tablayout就存在于所有片段中,可以显示并填充所选的选项卡,并在不需要时隐藏


我正在使用com.google.android.material和AndroidX NuGet软件包,我对Xamarin.android相当陌生,但我希望这能帮助有类似问题的人。

,我需要在应用程序工具栏的正下方有3个选项卡,最好不要用一条线分隔选项卡和工具栏。您希望实现以下内容:。如果没有,请在此发布一些屏幕截图。@CherryBu MSFT选项卡布局应该是起始页的一部分,而不是其他任何页面的一部分,而工具栏是在主布局上定义的。无论我做了什么,选项卡都不可见,因为它们在工具栏后面,而不在工具栏下面。也许这不是标签的问题,而是布局的问题。由于看起来每个页面都在整个屏幕上居中,工具栏位于其顶部,因此工具栏隐藏了任何页面的顶部。