一、设备类是Xamarin重要开发组成部分,下面介绍一下设备类的主要用法:

//唤醒打电话
Device.OpenUri(new Uri("tel:180xxxxxxxx")); //打开网页
Device.OpenUri(new Uri("http://vipstone.cnblogs.com/")); //判断当前运行平台
Device.RuntimePlatform => Device.iOS, Device.Android, Device.WinPhone //设备类型平板、手机、桌面
Device.Idiom => TargetIdiom.Phone, TargetIdiom.Tablet, TargetIdiom.Desktop //计数器延迟执行
Device.StartTimer (new TimeSpan (0, 0, 60), () => {
  // do something every 60 seconds
  return true; // runs again, or false to stop
});

更多Device相关信息请访问:https://developer.xamarin.com/guides/xamarin-forms/platform-features/device/

二、第三方弹窗,模态窗口

先看效果图:

模态窗口git地址:https://github.com/rotorgames/Rg.Plugins.Popup

基本实现核心代码:

<?xml version="1.0" encoding="utf-8" ?>
<pages:PopupPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="ywgoapp.Pages.Upgrade.UpgradePrompt"
xmlns:pages="clr-namespace:Rg.Plugins.Popup.Pages;assembly=Rg.Plugins.Popup">
<StackLayout VerticalOptions="Center" WidthRequest="290" HorizontalOptions="Center" Spacing="0">
<AbsoluteLayout VerticalOptions="Start">
<Image Source="upgrade_bgtop.png" WidthRequest="290" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="0,0"></Image>
<Label x:Name="lb_version" Text="版本升级" AbsoluteLayout.LayoutFlags="XProportional" AbsoluteLayout.LayoutBounds="0.5,74" FontSize="16" TextColor="White"></Label>
<Image x:Name="img_close" IsVisible="False" Source="close3.png" HeightRequest="24" WidthRequest="24" AbsoluteLayout.LayoutFlags="XProportional" AbsoluteLayout.LayoutBounds=".96,52">
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="OnCloseTap"></TapGestureRecognizer>
</Image.GestureRecognizers>
</Image>
</AbsoluteLayout>
<ScrollView Padding="30,20" MinimumHeightRequest="160" BackgroundColor="White">
<Label x:Name="lb_content" Text="" FontSize="12"></Label>
</ScrollView>
<StackLayout Padding="50,0,50,10" BackgroundColor="White">
<Button Text="立即升级" BackgroundColor="#4BC1D2" TextColor="White" Clicked="Button_Clicked">
</Button>
</StackLayout>
<StackLayout Spacing="0">
<Image Source="upgrade_bgbottom.png" WidthRequest="290" Aspect="AspectFill"></Image>
</StackLayout>
</StackLayout>
</pages:PopupPage>

调用代码:

this.Navigation.PushPopupAsync(new UpgradePrompt());

弹窗要注意的点:

1.不想点击任何区域都消失的话,需要重新OnBackgroundClicked事件:return false;

2.手动关闭窗体:PopupNavigation.PopAsync();

Xamarin系列其他推荐 


最新文章

  1. 《HiWind企业快速开发框架实战》(0)目录及框架简介
  2. CS193P - 2016年秋 第一讲 课程简介
  3. 使用Visual Studio扩展插件Visual assist X给代码插入注释模板
  4. 新旧各版本的MySQL可以从这里下载
  5. XML命名空间详解
  6. Android手机分辨率基础知识(DPI,DIP计算)二
  7. 【EF 5】结合项目实战分析EF三大工作模式之—Database First
  8. [C语言 - 13] 运算符
  9. JavaScript日期时间操作
  10. Linux(5)压缩和归档管理
  11. 【 js 基础 】【 源码学习 】backbone 源码阅读(一)
  12. Android Fragment 生命周期及其正确使用(建议使用自定义View替换Fragment)
  13. P2412高精度减法
  14. python闭包closure
  15. 登录状态保持Session/Cookie
  16. vmware创建centos虚拟机
  17. Java AQS学习
  18. 003-整型入栈指令(iconst、bipush、sipush、ldc)
  19. leetcode628
  20. Weekly Contest 78--------&gt;810. Chalkboard XOR Game

热门文章

  1. JDK安装以及安装过程中出现的问题(日志二)
  2. eclipse中集成hadoop插件
  3. Node.js编写CLI的实践
  4. React入门---可复用组件-10
  5. 基于TypeScript的FineUIMvc组件式开发(开头篇)
  6. 简易数据加密传输电路(VHDL)(原创)
  7. JVM、GC与HashMap
  8. CentOS7下配置网络yum源(附带下载地址)
  9. net.sf.json.JSONException: java.lang.reflect.InvocationTargetException Caused by: java.lang.IllegalArgumentException at java.sql.Date.getHours(Unknown Source)
  10. 初入计算机图形学(二):对bidirectional path tracing的一些困惑