동적 목록 맞춤설정 Android Jetpack의 구성요소

Compose 방식 사용해 보기
Jetpack Compose는 Android에 권장되는 UI 도구 키트입니다. Compose에서 레이아웃을 사용하는 방법을 알아보세요.
<ph type="x-smartling-placeholder"></ph> 지연 목록 및 그리드 → 를 통해 개인정보처리방침을 정의할 수 있습니다.

사용자는 RecyclerView 특정 니즈를 충족할 수 있습니다 표준 클래스는 동적 목록 만들기 RecyclerView는 대부분의 개발자에게 필요한 모든 기능을 제공합니다. 포함 대부분의 경우 각 뷰 홀더를 위해 뷰를 디자인하고 적절한 데이터로 뷰를 업데이트할 수 있습니다. 그러나 앱에 요구사항에 따라 다양한 방법으로 표준 동작을 수정할 수 있습니다. 이 문서에서는 가능한 맞춤설정 몇 가지를 설명합니다.

레이아웃 수정

RecyclerView는 레이아웃 관리자를 사용하여 개별 요소를 배치합니다. 더 이상 사용되지 않는 항목 뷰를 재사용할 시기를 결정합니다. 사용자에게 표시됩니다. 뷰, 레이아웃, 재사용(재활용) 관리자는 어댑터에 뷰의 콘텐츠를 데이터 세트에서 다른 요소를 생성합니다. 이런 식으로 뷰 재활용으로 불필요한 조회의 생성을 피하거나 비쌈 findViewById() 발생할 수 있습니다. Android 지원 라이브러리에는 세 가지 표준 레이아웃 관리자, 다음과 같은 다양한 맞춤설정 옵션이 제공됩니다.

  • LinearLayoutManager: 항목을 1차원 목록으로 정렬합니다. LinearLayoutManager가 포함된 RecyclerView의 기능 Kubernetes와 같은 <ph type="x-smartling-placeholder">ListView</ph> 있습니다.
  • GridLayoutManager: 은 항목을 2차원 그리드로 정렬합니다. 즉, 사각형이 격자무늬 다음과 함께 RecyclerView 사용 GridLayoutManager는 <ph type="x-smartling-placeholder">GridView</ph> 있습니다.
  • StaggeredGridLayoutManager: 각 열이 약간씩 오프셋된 2차원 그리드로 항목을 정렬합니다. 전과 달리 말이죠.

레이아웃 관리자가 니즈에 맞지 않는 경우 다음을 사용하여 직접 만들 수 있습니다. 확장하면 RecyclerView.LayoutManager 클래스입니다.

항목 애니메이션 추가

항목이 변경될 때마다 RecyclerView애니메이터를 사용합니다. 변경할 수 있습니다. 이 애니메이터는 추상 요소를 확장하는 RecyclerView.ItemAnimator 클래스에 대해 자세히 알아보세요. 기본적으로 RecyclerViewDefaultItemAnimator 애니메이션을 제공할 수 있습니다. 맞춤 애니메이션을 제공하고 싶은 경우 다음과 같은 작업을 수행할 수 있습니다. 객체를 확장하여 자체 애니메이터 객체를 RecyclerView.ItemAnimator

목록 항목 선택 사용 설정

recyclerview-selection 드림 사용자가 터치를 사용하여 RecyclerView 목록에서 항목을 선택할 수 있는 라이브러리 마우스 입력이 필요합니다. 이렇게 하면 스프레드시트의 시각적 표현을 제어할 수 있습니다. 선택한 항목을 선택합니다. 선택을 제어하는 정책에 대한 제어도 유지할 수 있습니다. 선택할 수 있는 상품, 선택할 수 있는 상품 수 등의 선택합니다.

RecyclerView 인스턴스에 선택 지원을 추가하려면 다음 단계를 따르세요.

  1. 사용할 선택 키 유형을 결정한 다음 ItemKeyProvider

    선택한 항목을 식별하는 데 사용할 수 있는 세 가지 키 유형은 다음과 같습니다.

    선택 키 유형에 대한 자세한 내용은 다음을 참고하세요. SelectionTracker.Builder

  2. 구현 ItemDetailsLookup
  3. ItemDetailsLookup를 사용하면 선택 라이브러리에 액세스할 수 있습니다. 주어진 RecyclerView 품목에 대한 정보 MotionEvent입니다. 사실상 이 공장은 ItemDetails 드림 백업 또는 추출된 스토리지 인스턴스를 RecyclerView.ViewHolder 인스턴스를 만들 수 있습니다

  4. 항목 업데이트 객체 View개 위치 RecyclerView: 사용자가 선택하거나 선택을 취소합니다.

    선택 라이브러리는 선택한 항목이 있습니다. 구현 시 제공 onBindViewHolder() 다음 접근 방식을 사용하는 것이 좋습니다.

    • onBindViewHolder()에서 다음을 호출합니다. setActivated(): 제외 setSelected(): 다음을 포함하는 View 객체 true 또는 false(항목이 선택합니다.
    • 뷰의 스타일을 업데이트하여 활성화된 상태를 나타냅니다. kubectl 명령어 색상 상태 list resource를 사용하여 스타일을 구성합니다.
  5. ActionMode 사용 를 사용하여 사용자에게 선택 항목에 대한 작업을 실행할 수 있는 도구를 제공합니다.
  6. SelectionTracker.SelectionObserver 선택사항이 변경되면 알림을 받게 됩니다. 처음 선택사항을 만들 때 ActionMode를 시작하여 사용자에게 이를 표시하고 작업을 실행할 수 있습니다. 예를 들어 삭제 버튼을 ActionMode 막대를 클릭하고 바의 뒤로 화살표를 눌러 지우기를 시작하세요. 선택합니다. 선택 항목이 비어 있는 경우(사용자가 마지막으로 작업 모드를 종료합니다.

  7. 해석된 보조 작업을 실행합니다.
  8. 이벤트 처리 파이프라인이 끝나면 라이브러리에서 사용자가 항목을 눌러 활성화하려고 하거나 드래그하는 중에 오류가 발생합니다. 적절한 리스너를 등록하여 이러한 해석에 반응합니다. 자세한 내용은 자세한 내용은 SelectionTracker.Builder

  9. SelectionTracker.Builder를 사용하여 모두 조립합니다.
  10. 다음 예는 이러한 조각을 합치는 방법을 보여줍니다.

    Kotlin

        var tracker = SelectionTracker.Builder(
            "my-selection-id",
            recyclerView,
            StableIdKeyProvider(recyclerView),
            MyDetailsLookup(recyclerView),
            StorageStrategy.createLongStorage())
                .withOnItemActivatedListener(myItemActivatedListener)
                .build()
        

    자바

        SelectionTracker tracker = new SelectionTracker.Builder<>(
                "my-selection-id",
                recyclerView,
                new StableIdKeyProvider(recyclerView),
                new MyDetailsLookup(recyclerView),
                StorageStrategy.createLongStorage())
                .withOnItemActivatedListener(myItemActivatedListener)
                .build();
        

    새로운 SelectionTracker 앱에서 RecyclerView.Adapter RecyclerView를 초기화하는 데 사용하는 SelectionTracker.Builder입니다. 따라서 SelectionTracker 인스턴스에 삽입하면 RecyclerView.Adapter 그러지 않으면 항목의 상태를 확인할 수 없습니다. onBindViewHolder() 메서드에서 선택된 상태를 반환합니다.

  11. 선택 항목을 활동 수명 주기 이벤트를 포함합니다.
  12. 활동 수명 주기 이벤트에서 선택 상태를 보존하기 위해 앱에서 선택 추적기의 onSaveInstanceState()onRestoreInstanceState() 액티비티의 <ph type="x-smartling-placeholder">onSaveInstanceState()</ph> 및 onRestoreInstanceState() 메서드를 사용하세요. 또한 앱은 고유 선택 ID를 SelectionTracker.Builder 생성자 이 ID가 필요한 이유는 다음과 같습니다. 활동이나 프래그먼트에는 하나 이상의 고유하고 선택 가능한 목록이 있을 수 있고 모두 저장된 상태로 유지되어야 합니다.

추가 리소스

자세한 내용은 다음 참조를 확인하세요.