【问题标题】:StackLayout isVisible property not working in Xamarin FormsStackLayout isVisible 属性在 Xamarin 表单中不起作用
【发布时间】:2017-02-05 18:29:04
【问题描述】:

我正在尝试使用 AbsoluteLayout 显示弹出窗口。在单击按钮时,我将 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,我知道按钮点击布局是可见的,但它的内容/子项不显示。我们是否必须单独启用子视图/元素?

【问题讨论】:

  • 我很确定它是 IsVisible="false" 和 ->"stackoverflow.com/questions/29006354/… 以防万一您使用的是旧版本的 Xamarin。
  • 您不给任何AbsoluteLayout.LayoutBounds 任何AbsoluteLayout 孩子似乎很奇怪。如果这样做会怎样?
  • 为了简化,我以这种格式表示我的代码。 LayoutBounds 是实际定义的
  • @eX0du5 在这里以简单形式添加代码时出错

标签: popup xamarin.forms absolutelayout


【解决方案1】:

试试这个

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();
}

【讨论】:

    猜你喜欢
    • 2018-04-11
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 1970-01-01
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多