下拉刷新

Xamrin 插件:
一、下拉刷新
ListView列表中属性:
IsPullToRefreshEnabled 将它设置为True
这样下拉刷新就激活了,但是没有任何事件,所以下面给下拉刷新添加事件

RefreshCommand属性:
    它的值是一个Command类对象,所以可以这么写:
        new Command(async () => await RefreshCommand(list));

RefreshCommand是自定义的一个方法,当下拉刷新被触发时,这个方法才会被执行。

IsRefreshing属性:
    当方法执行后,一定要将这个属性为False,这很重要,不然刷新动画会一直在界面中显示。


下拉刷新的过程就是这样,将这三个属性设置一下,就可以使用下拉刷新了。

1.2 问题:
    当我在RefreshCommand中试图更新ListView,但是和想的不一样。
在官网查看后,如果需要动态的更新ListView,那么就需要使用ObservableCollection集合赋值给
ListView的ItemsSource属性。

1.3 ObservableCollection我使用的方法
    Clear() 清空所有元素
    Add()   添加一个元素

二、调用机制
在Form跨平台中,需要调用手机APi是必不可少的。
首先在Form项目里,新建一个接口,这里演示为信息框显示。

public interface IMessage
    {
        void LogAlert(string message);
        void ShortAlert(string message);
    }

LogAlert方法,长时间显示信息文本
ShorAlert方法,短时间显示信息文本

在各个移动平台上实现这个接口,这里拿Android来演示:
[assembly: Xamarin.Forms.Dependency(typeof(MessageAndroid))]
namespace App2.Droid
{
   class MessageAndroid : IMessage
  {
     public void LogAlert(string message)
     {
            Toast.MakeText(Application.Context, message, ToastLength.Long).Show();
     }


     public void ShortAlert(string message)
     {
         Toast.MakeText(Application.Context, message, ToastLength.Short).Show();
     }
  }
}

[assembly: Xamarin.Forms.Dependency(typeof(MessageAndroid))]这句话我的理解是在Dependency类里注册,好在Forms中调用具体怎么说明,还没有看文档。

三、小细节

3.1跳转页面:
    SecondContentPage 类是一个继承ContentPage类的子类
    Navigation.PushAsync (new SecondContentPage ());
3.2弹出警告窗

      var action = await DisplayAlert("Question?", "Would you like to play a game", "Yes", "No");

DisplayActionSheet(标题,内容,按钮)

四、存在问题

当列表刷新后,抛出异常,说什么找不到该属性,这个坑人的Bug,是在添加列表后,出现的。经过三个小时的重复排查,不由感叹VS2017这个工具,调试真的难,报错也

出多少行错误,具体的报错位置也不知道,就是连哪个文件报错也不提示,可能是Xamarin的“新特性”。哦,说那里出现问题的,是在添加设备列表后,获取到的数据,其中一个是
null,就是不存在。然后加个判断就解决这个Bug了。

昨天说到可以通过HttpWebRequest类可以实现网络请求,因为是异步请求,所以如果服务器没有开,网络请求肯定是超时,当时方法却是异步的,无法正确捕获

异常,也无法正确给用户显示网络问题的提示,至今无法解决,明天问下大佬。

明天看第四章,今天赶着忙列表了
https://developer.xamarin.com/zh-cn/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/summaries/chapter04/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值