gpt4 book ai didi

xamarin.forms - Xamarin Forms在详细信息页面中隐藏TabbedPage但保留后退按钮

转载 作者:行者123 更新时间:2023-12-05 07:41:41 25 4
gpt4 key购买 nike

我有一个 xamarin 表单 TabbedPage 页面,第一页有一个 ListView 。当我单击 ListView 时,我希望能够隐藏选项卡(因为 ListView 项目将用户带到显示该项目详细信息的页面。这就是我只希望用户能够按下后退按钮的原因返回到 TabbedPage)...我该如何完成?

到目前为止,我最接近的是重新分配 App.Current.MainPage

ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
App.Current.MainPage= new NavigationPage(new MyNewPage());
}

但是,我丢失了后退按钮...如何制作详细信息页面,隐藏详细信息页面中的选项卡,而不丢失我的后退按钮? (在大多数流行的 Android 应用程序中似乎很常见)

描述我正在尝试做的事情的最佳示例是 Delta 的“Fly Delta”android 应用程序。在主屏幕上,有一个 TabbedPage。当我点击“最近的事件”时,我被发送到一个没有标签的详细信息页面,但详细信息页面有一个后退按钮。当我单击后退按钮时,它会将我送回 TabbedPage。

TabbedPage

Details Page

最佳答案

您必须为您的 TabbedPage 创建自定义渲染器,例如:

public class CustomTabbedPage : TabbedPage
{
public static readonly BindableProperty TabBarHiddenProperty =
BindableProperty.Create("TabBarHidden", typeof(bool), typeof(CustomTabbedPage), false);

public bool TabBarHidden
{
get { return (bool)GetValue(TabBarHiddenProperty); }
set { SetValue(TabBarHiddenProperty, value); }
}
}

using System;
using yourAppName;
using yourAppName.iOS;
using Xamarin.Forms;
using Xamarin.Forms.Platform.iOS;

[assembly:ExportRenderer(typeof(CustomTabbedPage), typeof(CustomTabbedPageRenderer))]
namespace yourAppName.iOS
{
public class CustomTabbedPageRenderer : TabbedRenderer
{
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);

this.Tabbed.PropertyChanging += (sender, eventArgs) => {
if (eventArgs.PropertyName == "TabBarHidden" && TabBar.SelectedItem == TabBar.Items[3])
{
bool tabBarHidden = !tmp.TabBarHidden;
TabBar.Hidden = tabBarHidden;
Console.WriteLine(View.Frame.Width + " " + View.Frame.Height);

// The solution to the space left behind the invisible tab bar
if(TabBar.Hidden)
View.Subviews[1].Frame = new CoreGraphics.CGRect(View.Subviews[1].Frame.X, View.Subviews[1].Frame.Y, View.Subviews[1].Frame.Width, 0);
else
View.Subviews[1].Frame = new CoreGraphics.CGRect(View.Subviews[1].Frame.X, View.Subviews[1].Frame.Y, View.Subviews[1].Frame.Width, 49);

}
};


}
}
}

对于 Android,我使用的是:https://github.com/thrive-now/BottomNavigationBarXF

关于xamarin.forms - Xamarin Forms在详细信息页面中隐藏TabbedPage但保留后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45219159/

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