• xamarin优化listView.ScrollTo


      在xamarinz中关于listview的滚动,我这里有点小优化,我做了一个类似QQ的聊天页面,上面是一个listview,下面时一个editText,当在手机上使用时,发现在android平台下,如果有多条信息,点击editText时,会弹出键盘,editText会被推上去,我的listview也要跟随往上推,但是由于版本问题,listview的item并没有网上滚动到底部,于是我简单的在editText的Focused事件上添加滚蛋代码如下:

     1 txtMessage.Focused += TxtMessage_Focused;
     2 
     3 private void TxtMessage_Focused(object sender, FocusEventArgs e)
     4 {
     5     if (listChatMessage.Count > 0)
     6     {
     7         Device.BeginInvokeOnMainThread(() =>
     8         {
     9             listView.ScrollTo(listChatMessage.Last(), ScrollToPosition.End, false);
    10         });
    11     }
    12 }

    马上运行调试,在android上并没有效果,listview的item并没有滚动到底部,优化需要加延时才有效果,最终更改代码如下:

     1 txtMessage.Focused += TxtMessage_Focused;
     2 
     3 private void TxtMessage_Focused(object sender, FocusEventArgs e)
     4         {
     5             if (listChatMessage.Count > 0)
     6             {
     7                 Task.Delay(100).ContinueWith((t) =>
     8                 {
     9                     Device.BeginInvokeOnMainThread(() =>
    10                     {
    11                         listView.ScrollTo(listChatMessage.Last(), ScrollToPosition.End, false);
    12                     });
    13                 });
    14             }
    15         }

    在xamarin中很多这种的问题,有时候稍微延迟一下就好。

  • 相关阅读:
    iOS设计模式-工厂方法
    iOS设计模式-原型模式
    (转)iOS 屏幕适配
    iOS设计模式-MVC
    转 常用第三方库
    学习资料收集
    xcode 插件
    CocoaPods安装和使用
    iOS 友盟统计的bug分析
    HTML——表格
  • 原文地址:https://www.cnblogs.com/zuimengaitianya/p/6141727.html
Copyright © 2020-2023  润新知