【发布时间】: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