2016-12-04 115 views
0

我正在Xamarin Android和我打电话的方法,返回一些搜索结果(页数,项目总数,等等,用模拟测试和工作正确)。无尽的滚动与RecyclerView Xamarin Android

我不知道如何在Xamarin中实现无限滚动视图。我看到一些Java实现,但我不知道如何将它“翻译”成Xamarin。

你能帮我还是举个例子?提前致谢!

回答

1

如果你还在你的问题的解决方案后,它可以帮助你梳理出来 在你的活动,你已经实现RecyclerView,您可以添加以下代码

public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     var view = base.OnCreateView(inflater, container, savedInstanceState); 

     var recyclerView = view.FindViewById<RecyclerView>(Resource.Id.my_recycler_view); 
     if (recyclerView != null) 
     { 
      recyclerView.HasFixedSize = true; 

      var layoutManager = new LinearLayoutManager(Activity); 

      var onScrollListener = new XamarinRecyclerViewOnScrollListener (layoutManager); 
      onScrollListener.LoadMoreEvent += (object sender, EventArgs e) => { 
       //Load more stuff here 
      }; 

      recyclerView.AddOnScrollListener (onScrollListener); 

      recyclerView.SetLayoutManager(layoutManager); 
     } 
     return view; 
    } 

和XamarinRecyclerViewOnScrollListener的.cs类实现下面的代码行

public class XamarinRecyclerViewOnScrollListener : RecyclerView.OnScrollListener 
{ 
    public delegate void LoadMoreEventHandler(object sender, EventArgs e); 
    public event LoadMoreEventHandler LoadMoreEvent; 

    private LinearLayoutManager LayoutManager; 

    public XamarinRecyclerViewOnScrollListener (LinearLayoutManager layoutManager) 
    { 
     LayoutManager = layoutManager; 
    } 

    public override void OnScrolled (RecyclerView recyclerView, int dx, int dy) 
    { 
     base.OnScrolled (recyclerView, dx, dy); 

     var visibleItemCount = recyclerView.ChildCount; 
     var totalItemCount = recyclerView.GetAdapter().ItemCount; 
     var pastVisiblesItems = LayoutManager.FindFirstVisibleItemPosition(); 

     if ((visibleItemCount + pastVisiblesItems) >= totalItemCount) { 
      LoadMoreEvent (this, null); 
     } 
    } 
} 

你可以找到链接click here

祝你好运。