繁体   English   中英

Android 模拟器的 Xamarin 按钮单击事件失败

[英]Xamarin Button Click event failure with Android Emulator

我在使用 Xamarin Forms for Android 使按钮点击工作时遇到问题。 我的代码只是添加了一个 Button 和一个 Click 处理程序的空白模板。 我正在使用 Visual Studio 2019 企业版。 iOS 和 UWP 项目存在,但已禁用。

我已将所有 NuGet 包以及 Android SDK 和工具更新到最新版本 (Xamarin.Forms v4.4.0.991477)。 我试过 Android 9.0 API 28 和 6.0 API 23。

OnButtonClicked设置的断点永远不会被命中。 MainPage本身似乎加载良好; 没有明显的错误或布局问题。 不会抛出异常。

我尝试下载一个具有类似代码的示例项目并未经修改地运行它——同样的问题。

就好像模拟器上的鼠标单击/点击被忽略了一样。

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d"
             Title="Home"
             x:Class="Sched.MainPage">
    <ContentPage.Content>
        <StackLayout>
            <Button Text="Button" Clicked="OnButtonClicked" />
        </StackLayout>
    </ContentPage.Content>
</ContentPage>
using System;
using System.ComponentModel;
using Xamarin.Forms;

namespace Sched
{
    [DesignTimeVisible(false)]
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }

        async void OnButtonClicked(object sender, EventArgs e)
        {
            var taskPage = new TaskPage();
            await this.Navigation.PushAsync(taskPage);
        }
    }
}
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             mc:Ignorable="d"
             Title="Task"
             x:Class="Sched.TaskPage">
    <ContentPage.Content>
        <StackLayout>
            <Label Text="Welcome to Xamarin.Forms!"
                VerticalOptions="CenterAndExpand" 
                HorizontalOptions="CenterAndExpand" />
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

问题解决了。

代码没问题。 问题是我的主显示器是 3840 x 2160 像素,通常使用 Windows 显示设置配置为 150% 缩放。 如果我将其设置为 100% 缩放,问题就会消失。 等效地,如果我将 Android 模拟器窗口拖到我的辅助显示器上,它具有 100% 的缩放比例,这也有效。

150% 缩放的另一个副作用是它会导致模拟器呈现为一个大的纯黑框,Android 屏幕位于左上角。 100% 缩放后,黑框消失,只留下 Android 屏幕。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM