>source

설명:사용자가 수평 항목에서 옵션을 선택할 수 있는 기능으로 하나의 데모를 작업 중입니다.리사이클러뷰. 이것에서 나는 아래 쿼리에 갇혔습니다.

쿼리:

1:만드는 방법리사이클러뷰주기적?

예를 들어, 1,2,3,4,5,6,7,8,9,10이라는 10개의 항목이 있습니다. 이제 사용자가 recyclerview를 스크롤하면 끝없이 스크롤할 수 있습니다. 즉, 1,2,3,4,5...9,10,1,2...9,10,1,2,3..9,10과 같습니다. 이것을 달성하기 위해 내가 사용한 이 답변. 어떻게 든 작동했지만 앞으로 만.

2:사용자가 선택한 특정 항목에 Snap 센터를 부여하는 방법은 무엇입니까?

예: 이미지에 표시된 대로사용자가 '15'를 클릭하면 해당 항목이 중앙에 표시됩니다. 사용자가 '07'을 클릭하는 것과 동일하게 중앙 위치에 와야 합니다. 나는 구현했다 이 데모. 그러나 항목을 클릭하면 작동하지 않습니다.

지금까지 한 code는 다음과 같습니다.

레이아웃 관리자:

final CenterZoomLayoutManager mLayoutManager= new CenterZoomLayoutManager(mContext,
            CenterZoomLayoutManager.HORIZONTAL, false);//To get centered item zoom
recyclerview.setLayoutManager(mLayoutManager);

어댑터 개체:

mAdapter= new CustomAdapter(mContext, arrayList, new RecyclerViewClickListener() {
        @Override
        public void recyclerViewListClicked(View v, int position) {
        }
    });
    recyclerview.setAdapter(mAdapter);

도움을 주시면 감사하겠습니다! 감사 해요.

  • 답변 # 1

    이 라이브러리를 사용할 수 있습니다. 이 라이브러리를 개인화하여 문제를 해결할 수 있습니다. 각 항목을 선택하면 ScrollToX 기능을 사용하여 해당 항목으로 이동할 수 있습니다.

    https://github.com/mahdimoaz/RecyclerViewHorizontalCenterSelected

  • 답변 # 2

    무한하게 하는 방법은 없지만 하는 방법은 있다 무한처럼 보입니다.

    어댑터에서 getCount()를 재정의하여 다음과 같은 큰 것을 반환합니다. 정수.MAX_VALUE:

    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }
    

    getItem() 및 getView() 모듈로(%) 위치를 실제 항목으로 나눕니다. 숫자:

    @Override
    public Fragment getItem(int position) {
        int positionInList= position % fragmentList.size();
        return fragmentList.get(positionInList);
    }
    

    마지막에 현재 항목을 중간으로 설정합니다(또는 아래쪽 방향으로만 끝이 없음).

    //scroll to middle item
    recyclerView.getLayoutManager().scrollToPosition(Integer.MAX_VALUE /2);
    

    스냅용 오프셋은 (width/2 -itemWidth/2)인 SnapHelper 또는 scrollToPositionWithOffset을 사용합니다.

  • 답변 # 3
  • 이전 Excel 스프레드시트에 값을 쓰도록 확인란을 얻으려고 합니다.
  • 다음 postgresql : Postgres 함수에서 IF 문을 사용할 때 구문 오류가 발생하는 이유는 무엇입니까?