C# 更改页面和显示模式时Android上的Webview显示问题(纵向->;横向)
当我尝试在C# 更改页面和显示模式时Android上的Webview显示问题(纵向->;横向),c#,xaml,xamarin,xamarin.forms,C#,Xaml,Xamarin,Xamarin.forms,当我尝试在webView中以横向模式()显示我的一个网页时,它可以在Android上正常工作 但是当它不是第一个页面,我在页面之间改变方向时,它在Android上就不能正常工作了(显示问题) MainPage.xaml.cs public partial class MainPage : ContentPage { private List<Anim> lesAnimations; public MainPage()
webView
中以横向模式()显示我的一个网页时,它可以在Android上正常工作
但是当它不是第一个页面,我在页面之间改变方向时,它在Android上就不能正常工作了(显示问题)
MainPage.xaml.cs
public partial class MainPage : ContentPage
{
private List<Anim> lesAnimations;
public MainPage()
{
InitializeComponent();
String animsJson = "[{\"Nom\":\"Réfraction et réfexion\",\"url\":\"https://web-labosims.org/animations/App_refraction_reflexion/App_refraction&reflexion.html\",\"imageUrl\":\"App_refraction.png\"},{\"Nom\":\"Synthèse soustractive\",\"url\":\"https://web-labosims.org/animations/App_lumiere3/App_lumiere3.html\",\"imageUrl\":\"App_soustractive.png\"}]";
lesAnimations = JsonConvert.DeserializeObject<List<Anim>>(animsJson);
maListView.ItemsSource = lesAnimations;
maListView.ItemSelected += (sender, e) =>
{
if (maListView.SelectedItem != null)
{
Anim item = maListView.SelectedItem as Anim;
GoAnimation(item.url);
}
maListView.SelectedItem = null;
};
}
private async Task GoAnimation(String url)
{
await this.Navigation.PushAsync(new Animation(url));
}
protected override void OnAppearing()
{
base.OnAppearing();
DependencyService.Get<IOrientationHandler>().ForcePortrait();
}
protected override void OnDisappearing()
{
base.OnDisappearing();
DependencyService.Get<IOrientationHandler>().ForceLandscape();
}
}
IOrientationHandler.cs
namespace LaboSims
{
public interface IOrientationHandler
{
void ForceLandscape();
void ForcePortrait();
}
}
在安卓系统上
using Android.Content.PM;
using LaboSims.Droid;
using Plugin.CurrentActivity;
[assembly: Xamarin.Forms.Dependency(typeof(OrientationHandler))]
namespace LaboSims.Droid
{
public class OrientationHandler : IOrientationHandler
{
public void ForceLandscape()
{
CrossCurrentActivity.Current.Activity.RequestedOrientation = ScreenOrientation.Landscape;
}
public void ForcePortrait()
{
CrossCurrentActivity.Current.Activity.RequestedOrientation = ScreenOrientation.Portrait;
}
}
}
我不明白我在哪里出错…我确信问题应该很简单,事实上这是一个简单的错误。。。我在我的网页上的元标记中犯了一个小错误。 我把它改成:
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1">
而且一切正常您能否在github提供一个样本,我将加载您的样本进行测试。我看到有listview,但是你没有发布相关代码。谢谢你的帮助,我最终发现了问题,它来自我网页的meta标签
using Android.Content.PM;
using LaboSims.Droid;
using Plugin.CurrentActivity;
[assembly: Xamarin.Forms.Dependency(typeof(OrientationHandler))]
namespace LaboSims.Droid
{
public class OrientationHandler : IOrientationHandler
{
public void ForceLandscape()
{
CrossCurrentActivity.Current.Activity.RequestedOrientation = ScreenOrientation.Landscape;
}
public void ForcePortrait()
{
CrossCurrentActivity.Current.Activity.RequestedOrientation = ScreenOrientation.Portrait;
}
}
}
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1">