タスクの実行中にオーバーレイの内容を表示するのに問題があります。私は問題を再現する非常にシンプルなXamarin.Forms共有プロジェクトを実行しました(現時点では、Androidエミュレータでのみ実行しています)。 Button
(表示するオーバーレイ)とStackLayout
と別のButton
(非表示にするには、オーバーレイ)とContentView
:ContentViewのコンテンツは、最初から表示されていない場合は表示されません。
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
ボタン)は表示されません。私はTrue
にoverlay
のIsVisible
プロパティを設定するXAMLを変更する場合:
<ContentView x:Name="overlay" AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All"
IsVisible="True" BackgroundColor="#C0808080" Padding="10, 0">
と私はアプリを実行し、その後、私は大きなhideOverlayButton
ボタンでグレーの層を見ることができます。この場合、オーバーレイを隠して再度表示し、非表示、表示、非表示にすることができます。
ContentView
のコンテンツは最初に表示されているようです...どうすれば解決できますか問題?
答えをありがとう、あなたは正しいです。私はデフォルトのXamarin.Formsライブラリ(古いもの)で作業していました。オーバーレイのコンテンツが表示されます。ありがとうございました! – Jon
私は助けることができてうれしいです。 –