StackLayout isVisible属性在Xamarin Forms中不起作用

时间:2016-09-28 00:30:19

标签: popup xamarin.forms absolutelayout

我正在尝试使用AbsoluteLayout显示弹出窗口。单击按钮,Iam将stacklayout设置为可见。但它没有显示出来。

<AbsoluteLayout x:Name="absoluteLayout">
    <StackLayout x:Name="layout1"
             BackgroundColor="White"
             Spacing="1"
             AbsoluteLayout.LayoutBounds="0,0,1,1"
              AbsoluteLayout.LayoutFlags="All">
    <StackLayout>
    <StackLayout x:Name="popupLayout"
             BackgroundColor="Gray"
             AbsoluteLayout.LayoutBounds="0,0,1,1"
             AbsoluteLayout.LayoutFlags="All"
             IsVisible="False"
             Spacing="0">
    //Content
    </StackLayout>
</AbsoluteLayout>

单击按钮,将可见性设置为true

public void OnButtonClick(object sender, EventArgs args){
    popupLayout.IsVisible = true;
}

我尝试在OnAppearing中将popupLayout的可见性设置为false,然后在按钮单击时启用,仍然具有相同的行为。

更新:添加了代码详细信息。通过将背景设置为popupLayout,我发现按钮单击布局是可见的,但不显示其内容/子项。我们是否必须单独启用子视图/元素?

1 个答案:

答案 0 :(得分:2)

试试这个

public void OnButtonClick(object sender, EventArgs args){
    popupLayout.IsVisible = true;
    popupLayout.ForceLayout();
}

或者

public void OnButtonClick(object sender, EventArgs args){
    popupLayout.IsVisible = true;
    popupLayout.Parent.ForceLayout();
}