如何从AbsoluteLayout中删除View元素并重置Xamarin表单中的所有属性?

时间:2018-06-24 06:11:42

标签: c# visual-studio xamarin xamarin.forms

我正在通过以下方法在 AbsoluteLayout 中添加视图元素,该方法在按钮事件中称为

private async void SlideBottomMenu(bool state, bool sideLeftOrRight)
    {
       if (state)
        {
         FoldTo = sideLeftOrRight;
         absolutelayout.Children.Add(SideMenu, new Rectangle(sideLeftOrRight? -1 : 1, 0, 1, 1), AbsoluteLayoutFlags.All);
          await SideMenu.TranslateTo(0, 0, 200, Easing.Linear); //show menu from left or right as sideLeftOrRight
        }
        else
        {
            if (sideLeftOrRight)
            {
                await SideMenu.TranslateTo(-(App.ScreenWidth), 0, 200, Easing.Linear); //translate to left to hide from screen
                absolutelayout.Children.Remove(SideMenu);


            }
            else
            {
                await SideMenu.TranslateTo((App.ScreenWidth), 0, 200, Easing.Linear); //translate to right to hide from screen
                absolutelayout.Children.Remove(SideMenu);

            }
        };

SideMenu (StackLayout)已在页面构造函数中初始化,并且此 SlideBottomMenu(bool,bool)方法在以下两个按钮事件中调用

private void Left_Clicked(object sender, EventArgs e)
    {
        SlideBottomMenu(true,true);
    }
private void Right_Clicked(object sender, EventArgs e)
    {
        SlideBottomMenu(true,false);
    }

然后关闭此SlideBottomMenu称为方法:

private void B1_Clicked(object sender, EventArgs e)
    {
       SlideBottomMenu(false,FoldTo);
    }

当我单击向左或向右按​​钮都可以正常工作时,但是从右向左或从左向右切换时, SlideBottomMenu 从错误的一侧出现,从左向右显示,从右向右显示,仅用于第一次单击,二次工作正确,

我认为原因是 sideMenu 不能从绝对布局中完全删除或删除,但是属性不会重置为默认值。

如果有人了解情况,请帮助我。

0 个答案:

没有答案