簡體   English   中英

回收商查看中心選定的項目

[英]recycler view center selected item

我正在使用RecyclerView水平滾動項目。 單擊任何項​​目時,將選擇該項目並更改其背景。 我需要的是當選擇項目時,它將滾動到中心。 第一項將在開頭居中。

任何意見將不勝感激。 我的代碼如下,但它並不是所有項目的中心。

recyclerView.addOnItemTouchListener(
            new RecyclerItemClickListener(getActivity(), recyclerView, new RecyclerItemClickListener.OnItemClickListener() {
                @Override
                public void onItemClick(View view, final int position) {
                    // TODO Handle item click
                    editAdapter.setSelection(position);
                    editAdapter.notifyDataSetChanged();
                    final int scrollX = (view.getLeft() - (center)) + (view.getWidth() / 2);
                    new Handler().postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            recyclerView.scrollBy(scrollX, 0);
                        }
                    }, 100);
                }

                @Override
                public void onLongItemClick(View view, int position) {

                }
            })
    );

在您的適配器中創建這樣的接口

 public interface NotifyPositionChange
{
    public void scrollToPosition(int position);
}

在適配器的構造函數中傳遞一個額外的參數。

public YourAdapter(NotifyPositionChange notifyPositionChange)
{
  this.notifyPosition=notifyPositionChange;
}

這樣在適配器中選擇項目時的接口調用方法

notifyPositionChange.scrollToPosition(position);

通過你當前的位置。 在您的活動中實現此接口並覆蓋其方法。

 @Override
public void scrollToPosition(int position) {

        yourRecyclerView.getLayoutManager().smoothScrollToPosition(yourRecyclerView, null, position - 1);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM