[英]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.