2017-06-11 24 views
0

私はXamarinでVS 2015のクロスプラットフォームプロジェクトに取り組んでいます。 AndroidとiOS。 ユーザーがwhatsappのようにスクロールすると検索バーが表示されるレンダラーを作成したいXamarin検索バーにプルダウン

Android用にこのようなレンダラーを作成しました。

protected override void OnElementChanged(ElementChangedEventArgs<ListView> e) 
     { 
      base.OnElementChanged(e); 
      if (Control == null) 
       return; 
      var tableView = Control as Android.Widget.ListView; 
      tableView.ScrollStateChanged += TableView_ScrollStateChanged; 
     } 

     private void TableView_ScrollStateChanged(object sender, Android.Widget.AbsListView.ScrollStateChangedEventArgs e) 
     { 
      var tableView = Control as Android.Widget.ListView; 
      var asdf = tableView.OverScrollMode; 
      var sss = tableView.ScrollIndicators; 
      //int asdf1 = tableView.MaxScrollAmount; 
      //int asdf2 = tableView.ScrollX; 
      //int asdf3 = tableView.ScrollY; 
     } 

しかし、電話で見た行のインデックスを取得できませんでした。

+0

あなたは、実際の質問をしていません。 – Jason

+0

@Jason申し訳ありませんが、私は続けて書いていました。 – Guest

答えて

0

しかし、電話で見た行のインデックスを取得できませんでした。

TableViewをカスタマイズしていると思いますが、最後までスクロールすると通知を受け取る方法が問題です。

次に、あなたはこのような例のコードのためにすることができます

public class MyTableViewRenderer : TableViewRenderer, IOnScrollListener 
{ 
    protected override void OnElementChanged(ElementChangedEventArgs<TableView> e) 
    { 
     base.OnElementChanged(e); 
     if (Control == null) 
      return; 
     var tableView = Control as Android.Widget.ListView; 
     tableView.SetOnScrollListener(this); 
    } 

    public void OnScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) 
    { 
     //if last item is shown. 
     if (firstVisibleItem + visibleItemCount == totalItemCount) 
      Log.Debug("item", totalItemCount.ToString()); 
    } 

    public void OnScrollStateChanged(AbsListView view, [GeneratedEnum] ScrollState scrollState) 
    { 
    } 
}