2016-09-28 28 views
0

AbsoluteLayoutを使用してポップアップを表示しようとしています。ボタンをクリックすると、スタックレイアウトが表示されるように設定されます。しかし、それは表示されません。ボタンのクリックで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> 

、真

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

に可視性を設定する私はOnAppearingにfalseにpopupLayoutの可視性を設定しようとしたし、その後も同じ挙動を有する、ボタンのクリックで可能になります。

更新:コードの詳細が追加されました。 backgroundをpopupLayoutに設定することで、ボタンクリックのレイアウトは表示されますが、そのコンテンツ/子は表示されません。子ビュー/要素を個別に有効にする必要がありますか? > "< - -

+1

を試してみてください。あなたは、コンパイラの問題がある可能性があり、というミスをすれば、私は過去にStackLayoutsとGrid上にIsVisibleを適用していて、これで問題が発生したことはありませんでしたが、この投稿をチェックすることもできますhttp://stackoverflow.com/questions/29006354/toggling-isvisible-for-an-stacklayout-inside-scrollview-あなたがXamarinの古いバージョンを使用している場合に備えて、正しく更新しません。 – eX0du5

+0

あなたが'AbsoluteLayout.LayoutBounds'を' AbsoluteLayout'子のいずれにも与えません。あなたがそうするとどうなりますか? –

+0

私は単純化のためにこのフォーマットで自分のコードを表現しました。実際にLayoutBoundsが定義されています – user3165999

答えて

1

、私はそれが持つ= "偽" のisVisibleあるかなり確信しているこの

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

Thanks Atul Firstオプションが機能しました。 – user3165999

関連する問題