2016-10-20 3 views
0

私のプロジェクトにthis DragListViewを使用します。 1つだけのものはDragListViewうまく動作します。ドラッグされたアイテムが上部または下部に達すると自動的にスクロールします。しかし、問題は、私がDragListViewをネストしたときに発生します。Android - ネストされたDragListViewは端に達すると自動スクロールしません

私は外部にRecyclerViewを持っています。このRecyclerViewにはカスタムアダプターが実装されています。また、RecyclerViewのカスタムアイテムにはDragListViewが含まれています。だから、レイアウトは、このようなものです:上記のレイアウトについては

<recyclerview> 
    <item> 
     <something like textview> 
     <DragListView> 
      <subitem/> 
      <subitem/> 
      <...../> 
     </DragListView> 
    </item> 

    <item repeated...>...</item> 
</recyclerview> 

、私はサブアイテムをドラッグすることができますが、それはそれは、両端に達して文句を言わない自動スクロールするとき。問題を探した後、スクロールの基準が「」であることがわかりました。最後のアイテムや最初のアイテムは表示されないようにしてください。リストの上部/下部にあるので、 "です。彼らはuser'veが上部または下部に達したかどうかを確認するために使用する方法がある。それがnullなら

ViewHolder lastChild = findViewHolderForLayoutPosition(mAdapter.getItemCount() - 1); 
    ViewHolder firstChild = findViewHolderForLayoutPosition(0); 

、あなたはDragListViewのトップ/ボトムに達していません。ヌルでない場合は、DragListViewの上部/下部に達しています。

しかし、最後の項目と最初の項目が現在画面に表示されていない(まだレイアウトされていない)場合でも、上記のコードは常にゼロ以外の値を返します。ViewHolderシステムはそれがトップ/スクロールしません(リストの途中で、最初と最後の項目は画面外です)。

DragListViewはすべてのアイテムをレンダリングしているため、ユーザーは外側のRecyclerViewだけをスクロールする必要があるためです。 (RecyclerViewDragListViewの両方をスクロールすると、ユーザーに悪いUXが発生する可能性があります)。

私は、アダプタが、運を経由してAcitivityから渡されたgetApplicationContext()DragListViewsetLayoutManagercontextを変更しようとしました。

誰でもこの問題を解決する方法はありますか?貴重な時間をありがとう。

答えて

0

数日後、問題の回避策が見つかりました。 DragListViewをネストするのではなく、viewTypeに基づいて多くのViewHolderを持つDragListViewを1つだけ作成し、をDragListViewにドラッグできるアイテムを決定しました。だから、すべてのアイテムが一度に表示されるわけではありません。これが誰かを助けることを望みます。

関連する問題