C#开发Android移动应用系列之路由设置及页面跳转

By jerrxjr1220 at 2023-08-16 • 0人收藏 • 441人看过

最近工作上遇到一些新需求:老板希望能把上位机的一些信息或功能实现移植到移动端,主要针对安卓手机想开发一款app。

VS的Xamarin框架可以支持跨平台开发(Android、IOS、Mac、UWP、三星),比较容易实现把C#的功能移植到移动端,所以就试着做了些尝试。

后面会分几次分享一些通过Xamarin开发移动端应用。


  • 路由设置和页面跳转

  1. 先通过VS创建Xamarin移动应用

  2. 在项目目录下新建Models、ViewsModel、Views三个文件夹,分别存放MVVM的模型

  3. 在ViewsModels中新建一个路由类PageRouter

  4. using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading.Tasks;
    using Xamarin.Forms;
    
    namespace XamarinApp01.ViewsModel
    {
        public class PageRouter
        {
            private static Dictionary<string, Type> routes = new Dictionary<string, Type>();
    
            public static void RegisterRoute(string route, Type pageType)
            {
                routes.Add(route, pageType);
            }
    
            public static async Task NavigateTo(string route)
            {
                if (routes.ContainsKey(route))
                {
                    Page page = (Page)Activator.CreateInstance(routes[route]);
                    await Application.Current.MainPage.Navigation.PushAsync(page);
                }
            }
        }
    }
  5. 新建一个新页面Page2

  6. 在App.xaml.cs中注册Page2

  7. using System;
    using Xamarin.Forms;
    using Xamarin.Forms.Xaml;
    using XamarinApp01.Views;
    using XamarinApp01.ViewsModel;
    
    namespace XamarinApp01
    {
        public partial class App : Application
        {
            public App()
            {
                InitializeComponent();
    
                // 注册页面路由
                //PageRouter.RegisterRoute("Page1", typeof(Page1));
                PageRouter.RegisterRoute("Page2", typeof(Page2));
    
                // 设置初始页面
                MainPage = new NavigationPage(new MainPage());
            }
    
            protected override void OnStart()
            {
            }
    
            protected override void OnSleep()
            {
            }
    
            protected override void OnResume()
            {
            }
        }
    }
  8. 在View/MainPage.xaml中,添加一个跳转按钮

  9. <Button Text="Next Page" Clicked="On_Click"/>
  10. 并在View/MainPage.xaml.cs中,添加事件处理

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;
using XamarinApp01.ViewsModel;

namespace XamarinApp01
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }
        public async void On_Click(object sender, EventArgs e)
        {
            await PageRouter.NavigateTo("Page2");
        }
    }
}


1692163083867629.png

5 个回复 | 最后更新于 2023-08-16
2023-08-16   #1

有点高大上了呀..

2023-08-16   #2

支持下, 这个改写成安卓的方式, 我也是最近有这个需求 , 不过我还没开始看咋弄,哈

2023-08-16   #3

回复#2 @admin :

其实就几个关键点:1. 路由设置 2. 页面跳转 3. 数据绑定 4. 页面布局

基本上这些会了,其他都和正常的C# WPF程序没啥不同。

2023-08-16   #4

回复#3 @jerrxjr1220 :

我目前只会winform拖拽 , 看来绕不开wpf了

2023-08-16   #5

回复#4 @admin :

其实我也没系统学过WPF,以前用的都是Winform,但是现在移动端已经彻底不支持Winform了,全部是WPF的风格,只能硬着头皮学

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...