回收商查看中心选定的项目

时间:2017-02-20 10:32:02

标签: android

我使用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) {

                }
            })
    );

1 个答案:

答案 0 :(得分:0)

适配器中的

创建一个像这样的接口

 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);
    }