xamarin.android 相关问题

Xamarin.Android(以前称为Android的Mono)是在Android平台上运行的Mono的实现,允许您使用本机Android库以及使用.NET BCL(基类库)在C#中编写Android应用程序。

Facebook Audience Network 的 Xamarin.Forms 实现

我正在努力在我的 Xamarin.Forms 应用程序中实施 Facebook Audience Network。 可用的 nuget 包很旧并且具有过时的方法。 我能够自己实现广告,测试插播......

回答 2 投票 0

所有布局活动底部的空白空间

我有一个移动应用程序,可以在较大的设备(平板电脑)上完美运行,但在手机中,它一直在整个应用程序的所有布局的底部显示空白区域。 在此示例中,我将显示登录信息

回答 1 投票 0

适用于 Xamarin.Forms 的 Google Integrity API

如何使用 Google 最新的 Integrety API 保护我们的 Xamarin.forms Android 应用程序?我发现 Google Play 服务库“com.google.android.play:integrity”有一个绑定。 Xamarin.Google。

回答 1 投票 0

Xamarin.Forms 项目的适应性问题

在此输入图像描述 这是代码:codeshare.io/VZW3z3 在开始之前,我想提一下,遗憾的是,我的英语不是最好的,所以如果您发现任何错误,我深表歉意。现在,进入

回答 1 投票 0

以编程方式切换时会触发 Switch Toggled 事件

<StackLayout BackgroundColor="White"> <ListView x:Name="ListViewMenu" ItemsSource="{Binding Menus}" HasUnevenRows="True" BackgroundColor="White" SeparatorVisibility="None" VerticalOptions="FillAndExpand" ItemTapped="Handle_ItemTapped" ItemSelected="Handle_ItemSelected" IsGroupingEnabled = "true" SeparatorColor="White"> <ListView.GroupHeaderTemplate> <DataTemplate> <ViewCell> <ViewCell.View> <StackLayout BackgroundColor="LightSkyBlue" HeightRequest="25"> <Label Text="{Binding Key}" FontAttributes="Bold" LineBreakMode="NoWrap" Margin="10,0,0,0"> </Label> </StackLayout> </ViewCell.View> </ViewCell> </DataTemplate> </ListView.GroupHeaderTemplate> <ListView.ItemTemplate> <DataTemplate> <ViewCell> <ViewCell.View> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"></RowDefinition> <RowDefinition Height="Auto"></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="6*"></ColumnDefinition> <ColumnDefinition Width="Auto"></ColumnDefinition> </Grid.ColumnDefinitions> <Label Text="{Binding article_description}" FontAttributes="Bold" FontSize="13" Margin="10,5,0,-6" Grid.Row="0" LineBreakMode="NoWrap"/> <Label Text="{Binding dish_name}" FontSize="13" Margin="10,0,0,2" Grid.Row="1" Grid.Column="0"/> <Label Grid.Row="0" Grid.Column="0" x:Name="LabelReserved" Text="{Binding reserved}" IsVisible="false" LineBreakMode="NoWrap"/> <Switch Grid.Row="0" Grid.RowSpan="2" Grid.Column="1" HorizontalOptions="Start" VerticalOptions="Center" IsEnabled="False" Toggled="SwitchMenu_OnToggled" > <Switch.Triggers> <DataTrigger TargetType="Switch" Binding="{Binding Source={x:Reference LabelReserved}, Path=Text.Length}" Value="7"> <Setter Property="IsToggled" Value="true" /> </DataTrigger> </Switch.Triggers> </Switch> </Grid> </ViewCell.View> </ViewCell> </DataTemplate> </ListView.ItemTemplate> </ListView> </StackLayout> 我上面有一个列表视图,它有一个开关,如果 labelreserved 的长度为 7,我有一个触发器来切换开关,但我不希望只有当用户单击开关时才触发 Toggled 事件。 可以做我想做的事吗? 注意: 这个解决方案是我的一个实验 - 所以我建议,如果你决定实现这个,请谨慎使用。 基本上,目的是创建一个仅查看的解决方案,能够跟踪如何设置 IsToggled 属性 - 无论是通过触发器、绑定上下文还是点击操作(类似于维护的 属性上下文)对于 BindingContext 于 BindableObject) 假设我们有一个自定义事件,仅当用户点击开关时才会触发 - 这个问题应该得到解决。简单地向 Switch 添加点击识别器似乎不起作用。我们只剩下两个选择: 创建您自己的自定义控件,提供与Switch类似的功能,但仅在捕获点击手势时触发切换事件 - 强烈推荐此选项。 或者,您可以使用自定义事件扩展现有 Switch 控件,并通过提供其自己的一组可绑定属性来跟踪 IsToggled 属性的设置方式。 例如: public class CustomSwitch : Switch { internal enum ToggledSetFlags { None = 0, FromCode = 1 << 0, } ToggledSetFlags _toggleSetStatus = ToggledSetFlags.None; public event EventHandler<ToggledEventArgs> UserToggled; public static readonly BindableProperty ToggledStateFromCodeProperty = BindableProperty.Create( "ToggledStateFromCode", typeof(bool), typeof(CustomSwitch), defaultBindingMode: BindingMode.TwoWay, defaultValue: default(bool), propertyChanged: OnToggledStateFromCodeChanged); public bool ToggledStateFromCode { get { return (bool)GetValue(ToggledStateFromCodeProperty); } set { SetValue(ToggledStateFromCodeProperty, value); } } private static void OnToggledStateFromCodeChanged(BindableObject bindable, object oldValue, object newValue) { ((CustomSwitch)bindable).OnToggledStateFromCodeChangedImpl((bool)oldValue, (bool)newValue); } protected virtual void OnToggledStateFromCodeChangedImpl(bool oldValue, bool newValue) { if (ToggledStateFromCode != IsToggled) { _toggleSetStatus = ToggledSetFlags.FromCode; IsToggled = ToggledStateFromCode; } } protected override void OnPropertyChanged(string propertyName = null) { base.OnPropertyChanged(propertyName); if (propertyName == nameof(IsToggled)) { ToggledStateFromCode = IsToggled; if (_toggleSetStatus == ToggledSetFlags.None) UserToggled?.Invoke(this, new ToggledEventArgs(IsToggled)); else _toggleSetStatus = ToggledSetFlags.None; } } } 并且,示例用法如下所示: <local:CustomSwitch Grid.Row="0" Grid.RowSpan="2" Grid.Column="1" HorizontalOptions="Start" VerticalOptions="Center" ToggledStateFromCode="{Binding IsSwitchOn}" UserToggled="SwitchMenu_OnToggled"> <Switch.Triggers> <DataTrigger TargetType="{x:Type local:CustomSwitch}" Binding="{Binding Source={x:Reference LabelReserved}, Path=Text.Length}" Value="7"> <Setter Property="ToggledStateFromCode" Value="true" /> </DataTrigger> </Switch.Triggers> </local:CustomSwitch> 编辑1:在恢复自定义切换属性状态时错过了在else方法中添加OnPropertyChanged。此外,仅在当前切换值不同时添加检查以设置标志。 编辑2: 将可绑定属性转换为跟踪状态,而不是像以前一样无状态。这确保了能够在不触发事件的情况下处理绑定更改。 您可以通过使用属性 IsEnabled 禁用 Switch 并将其设置为 false 来防止用户切换开关。 这个问题很旧,但我找到了一个简单(有点不正确)的解决方案,我用它来从已接受的答案中节省大量额外的工作。 当我以编程方式切换开关时,我将 Tag 属性设置为 true。 ToggleSwitch.Tag = true; ToggleSwitch.IsOn = true (or false); 然后在我的 Toggled 事件中,我检查 Tag 属性是否为 null 并执行我的操作。这样,事件被触发的唯一时间就是用户切换开关时。 private void ToggleSwitch_Toggled(object sender, RoutedEventArgs e) { ToggleSwitch toggleSwitch = (ToggleSwitch)e.OriginalSource; if (toggleSwitch.Tag == null) { // Switch was toggled by user, do some action. } else { // Switch was toggled programmatically, set Tag null. toggleSwitch.Tag = null; } }

回答 3 投票 0

模拟器上的 Xamarin Android 应用程序无法从本地托管的 asp.net core webapi 获取数据:操作已取消

我正在开发一个带有 Xamarin 表单的 Android 应用程序,该应用程序从 ASP.NET core webapi 获取数据。 但到目前为止,它似乎在以下行停止工作: HttpResponseMessage 响应 = 等待 cli...

回答 1 投票 0

在 Xamarin.Android 项目中找不到错误 APT2260 资源字体

我现在正在尝试寻找 Calligraphy 的替代品,因为我必须将我的项目升级到 API 级别 29。我对新端口没有任何运气,所以我正在尝试如下建议的本机解决方案: ...

回答 2 投票 0

滚动到布局底部

我正在尝试滚动到布局底部。我有这段代码,但它不起作用 ScrollViewscrollView = view.FindViewById(Resource.Id.scrollViewHelper); ...

回答 2 投票 0

Mac 上的 debug.keystore 在哪里?

我正在尝试生成我的指纹,它应该在这里:~/.android/debug.keystore,但我那里什么都没有,尽管我也可以正常运行我的 monodroid 项目,那么如何才能我...

回答 7 投票 0

VSCode 上的 Xamarin.Forms

有没有办法在 VS CODE 而不是 Visual studio 2022 中开发和运行 Xamarin.forms 应用程序? 有人尝试过并成功吗

回答 1 投票 0

Android 中的 Xamarin.Forms 推送通知负载

嗨,我的 Android 项目中有一个推送通知处理程序。我的目标是为每个通知提供不同的有效负载。 问题是当我收到通知时 然后点击通知我...

回答 1 投票 0

Firebase Cloud 消息传递和 Azure 通知中心设备注册相互实现

我正在开发一个xamarin应用程序,我需要在其中实现通知。我们决定使用 azure 来管理它们,但是实际发送通知的是 firebase,因此设备需要...

回答 1 投票 0

将Fragment转换为Android.Support.V4.App.Fragment

我有这个代码: 使用Android.App; 使用 Android.Content; 使用Android操作系统; 使用 MvvmCross; 使用 MvvmCross.Droid.Support.V7.AppCompat; 使用 MvvmCross.Forms.Views; 使用 MvvmCross.ViewModels; 你...

回答 1 投票 0

Xamarin 对 Android 14 的支持

在 Microsoft 宣布 Xamarin 现在将支持 iOS 17 和 Android 14 之后,我们现在正在寻求构建基于 Xamarin 的应用程序以针对这些较新的操作系统版本。 我们知道 Xa...

回答 1 投票 0

如何处理 Context Null?

ViewHandler - InvalidOperationException:上下文不能为空 异常何时发生:导航到具有自定义控件的页面 平台:安卓 SDK:8.x 预览版 发生...

回答 1 投票 0

如何触发 SearchBar Xamarin 表单上的事件取消按钮

Xamarin 表单视图模型可以触发 Searchbar 的 onTextChange 事件,但没有 OnCancelButtonClicked 的事件处理程序。 我想要的是: 每当取消/关闭Bu...时都应该触发事件

回答 2 投票 0

无法访问依赖组件 - EMDK 条形码 - Android Work 配置文件 - Xamarin

我们正在开发一款具有条形码扫描功能的Android应用程序。我们使用 EMDK 进行条码扫描。我们的应用程序在 Zebra 移动手持设备 (MC33) 上运行。 我们目前面临一个问题...

回答 2 投票 0

设置 TextView 可绘制对象的颜色

我正在尝试更改 Xamarin 中 TextView Drawable 的颜色。 在Java中你可以这样做: @覆盖 protected void onCreate(Bundle savingInstanceState) { super.onCreate(savedInstanceSt...

回答 10 投票 0

Xamarin Android - 从尺寸文件设置 TextSize

我有一个 Xamarin Android 项目,其中使用尺寸文件来指定不同屏幕尺寸/分辨率的文本大小、填充、边距等。 我注意到有一个明显的

回答 1 投票 0

防止位置管理器在手机进入睡眠状态时停止位置更新 Xamarin.Android

我非常成功地启动了一项服务。但在这个服务中,我有一个位置管理器,我开始从 GPS 提供商获取位置更新。 位置管理器成功发送

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.