首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MvvmCross在Android上的MvxTabbbedPage中未调用初始IMvxViewModel ViewAppeared

MvvmCross是一个跨平台的MVVM(Model-View-ViewModel)框架,用于开发移动应用程序。它允许开发人员使用单一代码库创建适用于多个平台的应用程序,包括Android、iOS和Windows。

MvxTabbedPage是MvvmCross框架中用于创建选项卡式界面的页面。在Android上使用MvxTabbedPage时,如果未调用初始IMvxViewModel ViewAppeared方法,可能会导致视图模型的初始化和数据绑定等操作未能正确执行。

为了解决这个问题,可以尝试以下步骤:

  1. 确保在MvxTabbedPage的派生类中正确实现了IMvxViewModel接口,并在构造函数中初始化视图模型。
  2. 在MvxTabbedPage的OnCreate方法中调用base.OnCreate(savedInstanceState)以确保基类的初始化操作得以执行。
  3. 在MvxTabbedPage的OnResume方法中调用base.OnResume(),并在其中调用IMvxViewModel的ViewAppeared方法,以确保视图模型的初始化和数据绑定等操作得以执行。

以下是一个示例代码片段,展示了如何在MvxTabbedPage中正确调用初始IMvxViewModel ViewAppeared方法:

代码语言:txt
复制
public class MyTabbedPage : MvxTabbedPage<MyTabbedViewModel>
{
    public MyTabbedPage()
    {
        // 初始化视图模型
        ViewModel = Mvx.IoCProvider.Resolve<MyTabbedViewModel>();
    }

    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);

        // 执行基类的初始化操作
        base.OnCreate(savedInstanceState);
    }

    protected override void OnResume()
    {
        base.OnResume();

        // 调用IMvxViewModel的ViewAppeared方法
        ViewModel.ViewAppeared();
    }
}

在这个示例中,我们在构造函数中初始化了视图模型,并在OnCreate方法中调用了基类的初始化操作。在OnResume方法中,我们调用了IMvxViewModel的ViewAppeared方法,以确保视图模型的初始化和数据绑定等操作得以执行。

对于MvvmCross在Android上的MvxTabbedPage的更多信息和使用方法,你可以参考腾讯云的文档链接:MvvmCross MvxTabbedPage

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • .NET 基金会项目介绍-MvvmCross

    MvvmCross 是属于 .Net 基金会一个项目,本文将简要介绍该项目相关信息。 中文介绍 中文介绍内容翻译自英文介绍,主要采用意译、如与原文存在出入,请以原文为准。...MvvmCross MvvmCross 是一个跨平台 MVVM 框架,其使得开发者能够构建简洁像素友好原生UI。...使用 Model-View-ViewModel (MVVM) 设计模式能够多平台间使用一套代码共享业务逻辑。 MvvmCross 专门为 Xamarin 和移动设备生态设计。...其支持 Xamarin.iOS, Xamarin.Android, Xamarin.Mac, Xamarin.Forms, Universal Windows Platform (UWP) 和 Windows...PHP】 Polly - 【服务调用工具库】 Prism - 【客户端MVVM开发框架】 Protobuild - 【项目文件生成工具】 Reactive Extensions for .NET - 【

    1.6K30

    .Net 跨平台可移植类库正在进行

    总而言之,可移植类库开始被广泛应用,越来越多支持移植类库被发布,并且跨平台应用程序,MVVM模式正被证明是一种非常棒最大化代码共享方式。...虽然严格来说是这样,但它并没说清楚这整个事实。即使我们无法引用特定目标的类库,但我们仍���以使用这些类库。我们可以调用它们提供方法,访问它们属性。...此外,请你一定要先看看我Xamarin Evolve会议演讲(c#如何拯救了我婚姻)。现在我将要谈谈可移植类库。...另一个用了MVVMCross跨平台应用是Aviva Drive。这是一个保险公司app,你可以用来跟踪你驾驶习惯,从而很有希望保险费获取这款。...phone8,windows 商店,IOS和安卓

    1.7K90

    MvvmCross 下使用 iOS Storyboard

    MvvmCross 下使用 iOS Storyboard ? Storyboard 优点: 可视化; XamarinStudio 自带 Storyboard 编辑器, 不用启动 Xcode 。...Storyboard 缺点: 只有一个文件, 不利于多人同时编辑; MvvmCross 不推荐使用 UIStoryboardSegue , 因为和 Mvx Command 功能上冲突, 这里以...添加 Storyboard 支持需要步骤 初始化 Storyboard AppDelegate 添加一个 Storyboard 属性, 并在 FinishedLaunching 方法中加载 Storyboard...} } Setup 设置使用自定义 StoryboardViewsContainer 重写 Setup CreateTouchViewsContainer 方法, 返回上面自定义...ViewController 实例; 修改 ViewController 对应类型基类, 继承自对应 Mvx***ViewController; 本文例子, 必须与 ViewController

    71410

    .NET 基金会项目介绍-Protobuild

    使用 Protobuild 您可以将一个项目的生成目标设置为 Windows, Linux, Mac, iOS, tvOS, Android, Ouya, Windows 8, Windows Phone...项目详情 官方网站 项目源码 项目许可证: MIT 项目联系人: June Rhodes 相关链接 开发文档 笔者简评 以前 csproj 模板还没有升级之前,想要生成不同目标的 C# 类库,需要准备多份不同项目文件...With Protobuild, you can have a project target Windows, Linux, Mac, iOS, tvOS, Android, Ouya, Windows...【机器学习框架】 Cecil - 【语言底层项目】 Mono - 【语言跨平台底层项目】 MSBuild - 【本地自动化框架】 MVVM Light Toolkit - 【客户端MVVM开发框架】 MvvmCross...PHP】 Polly - 【服务调用工具库】 Prism - 【客户端MVVM开发框架】 Protobuild - 【项目文件生成工具】 Reactive Extensions for .NET - 【

    1.2K00

    .NET 基金会项目介绍-Mono

    Mono 提供了一整套完整 SDK (包括编译器、运行时和类库) 以便能够诸多平台上运行 .Net 应用程序。...它通常被用作为 .Net 运行时以支持 .Net 桌面开发API,智能设备嵌入式环境(Xamarin.iOS, Xamarin.Android, Xamarin.tvOS, Xamarin.Mac,...就目前而言 netcore 实现了 Web 、 云 、 桌面等领域跨平台,而 Mono 继续智能设备和游戏设备发光发热。...【机器学习框架】 Cecil - 【语言底层项目】 Mono - 【语言跨平台底层项目】 MSBuild - 【本地自动化框架】 MVVM Light Toolkit - 【客户端MVVM开发框架】 MvvmCross...PHP】 Polly - 【服务调用工具库】 Prism - 【客户端MVVM开发框架】 Protobuild - 【项目文件生成工具】 Reactive Extensions for .NET - 【

    1.2K20

    我是如何从Web开发转向移动开发

    因为我想要做一些新东西以学习新技能,虽然web编程我仍然有很多需要学习地方。 我认为,移动app有一个前途光明未来,虽然已经有很多app存在于网上商店里。...更何况我目前就职公司恰好有这个机会能够使用我最喜欢语言(C#)来开发新Android和iOS应用程序,那么为什么不利用这个机会呢。...即使我已经用过(WPF和Windows Phone),但并不是同一水平,我仍然有很多东西需要学习。...我需要处理两个我完全不曾涉足生态系统(Android和iOS),两个我一无所知框架(Xamarin和MvvmCross)和一些并不容易满足业务需求。不过,幸运是,至少我知道如何使用C#。...团队所有人都不得不面对相同分量学习,高级开发人员和初级开发人员皆是如此。

    1.3K60

    五年Android开发,让我“刻骨铭心”那些坑

    解决方案:如果在ActivityonCreate方法初始化Typeface,会导致进入Activity慢,出现黑屏/白屏现象,所以应该尽量非UI线程做自定义字体初始化操作。...做初始化操作(打开文件),onDestory做销毁操作(关闭文件);退出Activity后onDestory并没有立即调用,再次快速进入该Activity时,该Activity是另外一个实例,并且首先调用了新...Android这样做目的是防止广播无意或者不必要地开启启动APP后台服务。...也就是说Android3.1及以上版本,程序启动情况下通过应用自身完成一些操作是不可能,但Android提供了一种借助其它应用发送指定Flag广播方式,达到应用在启动情况下仍然能够收到消息效果...,但此时Fragment没有完全显示或者已经离开Fragment; 解决方案:调用Fragment方法之前,强烈建议调用isAdded方法判断Fragment是否依附在Activity,避免出现异常

    1.5K40

    Apply Changes Android 11 增强特性

    该功能使 Apply Changes Android 11 设备增加了一类新应用场景。...通过使用 Apply Code Changes 增加 y 情况下,很难计算出正确 y 值。事实对 y 赋值,即使采用最接近模拟类加载和初始化 y 程序,也是有争议。...因为两个 curentTimeMillis() 静态初始化 ( 方法) 调用,Apply Changes 将继续遵守不重新执行 方法任何部分策略,所以新增 y...设备Android Studio 将我们更改传达给 VM 之前,Java Agent 将检查即将被替换的当前加载类。...通过比较当前加载类和新编译类字段,即可计算出新增字段列表及每个字段初始值。然后,代理程序将暂时挂起所有其他线程,防止初始新增字段替换前被访问。

    89310

    Apply Changes Android 11 增强特性

    该功能使 Apply Changes Android 11 设备增加了一类新应用场景。...通过使用 Apply Code Changes 增加 y 情况下,很难计算出正确 y 值。事实对 y 赋值,即使采用最接近模拟类加载和初始化 y 程序,也是有争议。...因为两个 curentTimeMillis() 静态初始化 ( 方法) 调用,Apply Changes 将继续遵守不重新执行 方法任何部分策略,所以新增 y 值为 0。...通过比较当前加载类和新编译类字段,即可计算出新增字段列表及每个字段初始值。然后,代理程序将暂时挂起所有其他线程,防止初始新增字段替换前被访问。...试想这样一个例子: 构造函数发生了变化,但是所有基于原来构造函数初始对象并没有重新初始化。同样,该规则也适用于静态变量,因为 不会被重新调用

    66830

    Android UI布局优化之ViewStub

    一种是类被加载时候就完成单例对象初始化,一种是需要使用该单例时候才初始化。 android视图设计,同样需要使用这样设计模式。 这样视图加载起来需要耗费很多时间。...在这几百个视图里面,可能有部分视图是点击某一按钮也就是并不是马上加载, 而是延迟到要使用时候才加载这部分视图。也就是类似于单例模式懒加载。 特性: 1....ViewStub视图首次调用setVisibility或者inflate方法之前,一直存在于视图树 5....inflate方法会返回待加载视图根节点 使用: 我一个activity放置了一个按钮,点击后加载懒加载视图。 Activity布局文件定义my_sub_activity.xml: <?...也就是说,调用inflate方法之前,ViewStub一直存在于视图树,当调用inflate之后,ViewStub被加载视图替换,到此,ViewStub作用完成,之后ViewStub可能被内存回收

    84420

    Android 集成 Flutter | 与交互

    此外, Android N 之前版本,SurfaceView 不能使用动画,因为他们布局渲染和 View 层次结构其他部分不同。...对于任何不是由 Flutter 绘制像素,该背景都是黑色。出于性能原因,使用不透明背景渲染是首选渲染模式。 Android 具有透明度 Flutter 渲染会对性能产生负面影响。...名字为 flutterMethod 方法,其中第一个参数为方法名字,第二个是参数,回调调用结果和是否调用成功。...跳转 android 页面实际使用是 MethodChannel ,需要跳转时候,flutter 调用一下 android android 端执行跳转逻辑即可,如下所示: flutter 端代码...,可以发现 引入之前内存使用只有 55Mb 左右,而在初始化了 fluuter 引擎(Engine) 之后,内存瞬间到了 181Mb 。

    2K20

    SwitchButton 开关按钮 多种实现方式

    刚开始接触开关样式按钮是IOS系统上面,它切换以及滑动十分帅气,深入人心。 所谓开关按钮,就是只有2个状态:on和off,下图就是系统IOS 7开关按钮效果。...起初我android我只会使用CheckBox去满足对应功能。...后来,查看开发文档发现,android也有了自己原生态开关控件,并且4.0版本又优化加入了新类似控件--Switch控件,以及使用起来十分简单ToggleButton,可是它们只是带有切换效果..."       反之就是选中off情况下效果:android:drawable="@drawable/ios7_switch_off" 之后布局文件写控件: <ToggleButton android...="false"  表示:初始化时候,默认是选中 android:button="@drawable/toggle_btn"  表示:button样式 android:background="@android

    3.1K70

    【Flutter 专题】54 图解 Flutter 基本生命周期

    特殊场景 和尚也尝试了一下 Android7.0 分屏情况下生命周期; 11....:初始化 / 状态改变 / 销毁; initState 整个生命周期中初始化阶段只会调用一次; didChangeDependencies 当 State 对象依赖发生变动时调用; didUpdateWidget...当 Widget 状态发生改变时调用;实际每次更新状态时,Flutter 会创建一个新 Widget,并在该函数中进行新旧 Widget 对比;一般调用该方法之后会调用 build; reassemble...只有 debug 或 热重载 时调用; deactivate 从 Widget Tree 移除 State 对象时会调用,一般用在 dispose 之前; dispose 用于 Widget 被销毁时...,通常会在此方法移除监听或清理数据等,整个生命周期只会执行一次; resumed 应用程序可见且获取焦点状态,类似于 Android onResume(); inactive 应用程序处于非活动状态;

    1.4K41

    MvvmCross 框架数据绑定语法

    MvvmCross 框架数据绑定语法 数据绑定一直是 MvvmCross (Mvx) 框架核心, 随着 Mvx 版本版本更新, 绑定语法由 Json 变化到了 Swiss 语法, 并逐渐向 Tibet...Mvx 实现了跨平台数据绑定, 概念与 WPF/Silverlight/WinPhone (Xaml) 数据绑定一致, 可以 Android 和 iOS 平台使用, 这也正是 Mvx 框架魅力所在...Swiss 绑定, 绑定写法是: Text Fullname 而在 Tibet 绑定, 可以这样写: Text Firstname + ' ' + Lastname 这样就不再需要创建那个额外属性了...(one, two) 判断两个值大小, 可以绑定中使用 > 代替; 重要提示: 属性合成还处于开发, 只是基本可以工作原型, 未来版本随时都可能变化。...语义绑定 多值绑定与属性合成已经见到了, Tibet 支持语义绑定, 比如: Value 100 * Ratio 将 Ratio 乘以 100 以转换成百分比, 再比如: Value Format(

    1.6K31

    android开关按钮

    刚开始接触开关样式按钮是IOS系统上面,它切换以及滑动十分帅气,深入人心。 所谓开关按钮,就是只有2个状态:on和off,下图就是系统IOS 7开关按钮效果。...起初我android我只会使用CheckBox去满足对应功能。...后来,查看开发文档发现,android也有了自己原生态开关控件,并且4.0版本又优化加入了新类似控件--Switch控件,以及使用起来十分简单ToggleButton,可是它们只是带有切换效果..."       反之就是选中off情况下效果:android:drawable="@drawable/ios7_switch_off" 之后布局文件写控件: <ToggleButton android...="false"  表示:初始化时候,默认是选中 android:button="@drawable/toggle_btn"  表示:button样式 android:background="@

    4K80

    Android从零单排系列十九】《Android视图控件——CheckBox》

    二 CheckBox使用方法 布局文件添加一个复选框: <CheckBox android:id="@+id/checkBox" android:layout_width="wrap_content..." android:layout_height="wrap_content" android:text="复选框" /> Java代码处理复选框状态变化: import android.os.Bundle...例如,Android开发,你可以通过调用setChecked(true)方法将复选框设置为选中状态,通过调用getText().toString()方法获取复选框旁边显示文本内容,以及使用setEnabled...类文件代码(例如 MainActivity.java): import android.os.Bundle; import android.view.View; import android.widget.CheckBox..."); } } } 五 总结 复选框是Android开发重要且实用控件之一,可以方便地实现多选功能和用户交互。

    30630
    领券