2016-09-08 16 views
1

タスクの実行中にオーバーレイの内容を表示するのに問題があります。私は問題を再現する非常にシンプルなXamarin.Forms共有プロジェクトを実行しました(現時点では、Androidエミュレータでのみ実行しています)。 Button(表示するオーバーレイ)とStackLayoutと別のButton(非表示にするには、オーバーレイ)とContentViewContentViewのコンテンツは、最初から表示されていない場合は表示されません。

OverlayPage.xaml:

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      x:Class="OverlayTest.Pages.OverlayPage"> 
    <AbsoluteLayout> 
    <StackLayout AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All"> 
     <Button x:Name="showOverlayButton" Text="Show overlay" Clicked="ShowOverlayButtonClicked"/> 
    </StackLayout> 
    <ContentView x:Name="overlay" AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All" 
       IsVisible="False" BackgroundColor="#C0808080" Padding="10, 0"> 
     <Button x:Name="hideOverlayButton" Text="Hide overlay" Clicked="HideOverlayButtonClicked"/> 
    </ContentView> 
    </AbsoluteLayout> 
</ContentPage> 

OverlayPage私は2つのメインページ内の要素を持っています。 xaml.cs:

using System; 
using Xamarin.Forms; 

namespace OverlayTest.Pages 
{ 
    public partial class OverlayPage : ContentPage 
    { 
     public OverlayPage() 
     { 
      InitializeComponent(); 
     } 

     private void ShowOverlayButtonClicked(object sender, EventArgs e) 
     { 
      this.overlay.IsVisible = true; 
     } 

     private void HideOverlayButtonClicked(object sender, EventArgs e) 
     { 
      this.overlay.IsVisible = false; 
     } 
    } 
} 

App.cs:

using OverlayTest.Pages; 
using Xamarin.Forms; 

namespace OverlayTest 
{ 
    public class App : Application 
    { 
     public App() 
     { 
      // The root page of your application 
      this.MainPage = new NavigationPage(new OverlayPage()); 
     } 
    } 
} 

アプリを実行すると、showOverlayButtonをクリックすると灰色のレイヤーが表示されますが、内容(hideOverlayButtonボタン)は表示されません。私はTrueoverlayIsVisibleプロパティを設定するXAMLを変更する場合:

<ContentView x:Name="overlay" AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All" 
      IsVisible="True" BackgroundColor="#C0808080" Padding="10, 0"> 

と私はアプリを実行し、その後、私は大きなhideOverlayButtonボタンでグレーの層を見ることができます。この場合、オーバーレイを隠して再度表示し、非表示、表示、非表示にすることができます。

ContentViewのコンテンツは最初に表示されているようです...どうすれば解決できますか問題?

答えて

1

私が解決策を作成し、あなたが述べたとおりにページを正確に追加しました。それは問題なしで正常に動作しました。オーバーライドが隠された状態でアプリケーションが開始され、オーバーレイの内容が表示され、表示されたときに表示され、期待どおりに表示/非表示にできました。

あなたのための私の推薦は、取り組む問題は前にあったので、あなたがXamarin.Formsの最新バージョンを持っていることを確認し、リンク Visibility issue with dynamic content of a ContentView

私はv2.3.1.114

を使用バージョンを確認することですあなたのアップデートを教えてください。

+0

答えをありがとう、あなたは正しいです。私はデフォルトのXamarin.Formsライブラリ(古いもの)で作業していました。オーバーレイのコンテンツが表示されます。ありがとうございました! – Jon

+0

私は助けることができてうれしいです。 –

関連する問題