【发布时间】:2019-05-21 10:50:15
【问题描述】:
我想从TabbedPage 中删除Tabbar。我得到它的工作,但它留下空白或隐藏Tabbar后页面高度未更新。
请注意,当我们在页面中滑动时,空白会消失并且永远不会回来。此问题仅首次出现。
我已经从this 链接尝试过。但它不起作用。
也试过了
private void Element_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
try
{
TabBar.Hidden = true;
//TabBar.Bounds = new CoreGraphics.CGRect(View.Subviews[0].Frame.X, View.Subviews[0].Frame.Y,
// View.Subviews[0].Frame.Width, 0);
if (TabBar.Hidden)
{
// page
View.Subviews[0].Frame = new CoreGraphics.CGRect(0, 0, View.Subviews[1].Frame.Width, NativeView.Frame.Height);
// Tabbar
View.Subviews[1].Frame = new CoreGraphics.CGRect(View.Subviews[0].Frame.X, View.Subviews[0].Frame.Y,
View.Subviews[0].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);
View.Subviews[0].Frame = new CoreGraphics.CGRect(View.Subviews[0].Frame.X, View.Subviews[0].Frame.Y,
View.Subviews[0].Frame.Width, View.Subviews[0].Frame.Height - 49);
}
//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);
}
catch (Exception ex)
{
//TraceLog("Element_PropertyChanged" + ex.Message);
}
}
编辑
我在单击的列表视图项目上打开选项卡式页面。我允许动态添加多个选项卡。我还使用 ContentView 创建了自定义选项卡栏,当从 TabbedPage 添加或删除页面时我会更新该选项卡栏。
顺序是: - 用户打开第一个选项卡。 - 单击标签页上给出的主页图标。 - 通过单击另一个列表项打开第二页 - 滑动页面,页面高度正常。
这是 ListView_ItemTapped 上的代码(未发布具体内容,但您可以了解:)
MultiTab ObjMultiTab = new MultiTab(); // Initialize tabbed page
// Get data from server
ObjMultiTab.Data = ObjData;
int Id = Convert.ToInt32(ObjData.id);
if (ActiveList.ContainsKey(Id)) // Dictionary that contains info about index and pageid that are already open
{
TabId = ActiveList[ObjData.id];
CurrentPage = Children[TabId]; // If user taps on already opend page
}
else
{
Count += 1; ActiveList.Add(Id, Count);
Children.Add(new SecondTabbedPage(TableData)); // Or add new child
CurrentPage = Children[Count];
}
await Application.Current.MainPage.Navigation.PushModalAsync(ObjMultiTab);
有什么办法可以去掉第一次的空白吗?
【问题讨论】:
-
你能在你的 xamarin.forms 项目中添加关于 TabbedPage 的代码吗?我没有看到我这边的空白。
-
@JackHua-MSFT 请查看更新。
标签: xamarin.forms xamarin.ios uitabbar