2016-05-02 3 views
1

内に表示されるアイテムを取得します次のようになります。私は側で</p> <p>私のフラグメントの活動を私が持っているrecyclerview内に表示されるアイテムを取得するには、以下のようにコードを使用していRecyclerView

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

    public event LoadMoreEventHandler LoadMoreEvent; 

    private LinearLayoutManager layoutmanager; 

    private Action StateChange; 

    private FeedAdapter adapter; 

    private View currentFocusedLayout, oldFocusedLayout; 

    private Context ctx; 

    public XamarinRecyclerViewOnScrollListener(LinearLayoutManager layoutManager) 
    { 
     this.layoutmanager = layoutManager; 
    } 

    public XamarinRecyclerViewOnScrollListener(Context ctx, LinearLayoutManager layoutmanager, FeedAdapter adapter) 
    { 
     // TODO: Complete member initialization 
     this.layoutmanager = layoutmanager; 

     this.adapter = adapter; 

     this.ctx = ctx; 

     //this.StateChange = StateChange; 
    } 

    public override void OnScrollStateChanged(RecyclerView recyclerView, int newState) 
    { 
     base.OnScrollStateChanged(recyclerView, newState); 

     if (newState == (int)ScrollState.Idle) 
     { 
      layoutmanager = (LinearLayoutManager)recyclerView.GetLayoutManager(); 

      int firstVisiblePosition = layoutmanager.FindFirstCompletelyVisibleItemPosition(); 

      if (firstVisiblePosition >= 0) 
      { 
       if (oldFocusedLayout != null) 
       { 
        Toast.MakeText(ctx, "Stop Video", ToastLength.Long).Show(); 
       } 


      } 
      currentFocusedLayout = layoutmanager.FindViewByPosition(firstVisiblePosition); 
      //VideoView vv_dashboard = (VideoView)currentFocusedLayout.findViewById(R.id.vv_dashboard); 
      ////to play video of selected recylerview, videosData is an array-list which is send to recyclerview adapter to fill the view. Here we getting that specific video which is displayed through recyclerview. 
      //playVideo(videosData.get(positionView)); 

      Toast.MakeText(ctx, "Play video", ToastLength.Long).Show(); 

      oldFocusedLayout = currentFocusedLayout; 

     } 
    } 
} 

layoutmanager.FindFirstCompletelyVisibleItemPosition()常に-1を返します。私は、画面に表示されている項目をリストに設定し、その項目で何かをしたいと思っています。私はさまざまなソリューションを試しましたが、どれも働いていませんでした。これを達成する正しい方法は何ですか?

+0

誰でも助けてくれますか? –

答えて

0

-1を検出すると、RecyclerViewはレイアウト内のアイテムを検出しないことを意味します。

関連する問題