【问题标题】:Xamarin Button Click event failure with Android EmulatorXamarin Button Click 事件失败与 Android 模拟器
【发布时间】:2020-01-15 01:37:48
【问题描述】:

我无法使用适用于 Android 的 Xamarin Forms 进行按钮点击。我的代码只是添加了 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>

【问题讨论】:

  • 你的项目中还有其他代码吗?我只是测试,它对我有用。试试我的示例here
  • 我下载并运行了您提供的测试解决方案。它以与我的问题相同的方式失败。当我单击模拟器时,此屏幕截图中的文本显示在 VS 输出窗口中。不知道它是否是预期的。 puu.sh/F02gT/1c77f3e3ce.png
  • 点击时有没有看到按钮上的点击动画?
  • 你能试试另一个新的模拟器或真机吗?我很确定该示例可以正常工作,并且代码没有任何问题。
  • 我尝试了一个新的模拟器。没有运气。单击时没有动画。不幸的是,我没有可以试用的真实设备。会不会和模拟器的配置有关?

标签: c# android xaml xamarin button


【解决方案1】:

问题解决了。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 2011-11-02
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    相关资源
    最近更新 更多