2016-12-04 114 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

祝你好運。