2016-09-28 69 views
0

我想顯示彈出使用AbsoluteLayout。點擊按鈕後,Iam將stacklayout設置爲可見。但沒有顯示。StackLayout isVisible屬性不工作在Xamarin形式

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

我試圖popupLayout的知名度OnAppearing設置爲false,然後啓用按鈕點擊,仍然有同樣的行爲。

更新:添加代碼細節。通過設置popupLayout的背景,我開始知道按鈕點擊佈局是可見的,但其內容/子項不顯示。我們是否應該分別啓用子視圖/元素?

+1

我敢肯定它是ISVISIBLE =與 「假」 - >「< - 如果你錯過了,你可能有一個編譯器的問題,我已經在StackLayouts和Grids上應用了IsVisible並且從來沒有遇到過這個問題。但是你也可以檢查這篇文章http://stackoverflow.com/questions/29006354/toggling-isvisible-for-an-stacklayout-inside-scrollview-如果您使用的是舊版本的Xamarin,則不會更新。 – eX0du5

+0

您似乎很奇怪不要給任何'AbsoluteLayout'子任何'AbsoluteLayout.LayoutBounds'。如果你這樣做會發生什麼? –

+0

爲了簡化,我用這種格式表示了我的代碼。 LayoutBounds實際上定義爲 – user3165999

回答

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

感謝Atul First選項。 – user3165999

相關問題