안드로이드 리사이클러뷰 예제


0 Flares Filament.io 0 Flares ×

요즘 사람들은 항상 긴장을 풀고, 그리드를 벗어나서 스마트 폰을 내려 놓으라는 말을받습니다. 하지만 그 재미는 어디에 있습니까? 나는 당신이 그리드에서 하차하지 않도록 격려하기 위해 여기에 있어요. 대신, 우리의 그리드에 도착-우리의 안 드 로이드 GridView 자습서, 그건! ListView 및 GridViews는 진정한 메모리 효율성을 달성하는 작업의 절반만 수행합니다. 항목 레이아웃을 재활용하지만 레이아웃 자식에 대한 참조를 유지하지 않아 getView()를 호출할 때마다 항목 레이아웃의 모든 자식에 대해 findViewById()를 호출해야 합니다. 뷰 홀더를 활용하려면 getView()를 다음과 같은 변경 사항으로 변경 @Override합니다. onClick (보기, int 위치) { 영화 영화 = movieList.get (위치); /*위의 영화 개체 */ AlertDialog.Builder = 새로운 AlertDialog.Builder (MainActivity.this); builder.setTitle(“동영상”)에서 정보와 함께 여기에 경고 대화 상자 표시 선택됨”) builder.setMessage(movie.getTitle()); builder.setPositiveButton (“확인”, 새로운 대화 상자인터페이스.OnClickListener() { @Override 공개 무효on클릭 (대화 인터페이스 대화 상자, int) { 대화 상자.cancel (); openSettings(} ); } ); builder.show(); } 완료된 프로젝트는 여기에서 다운로드할 수 있습니다. GridView로 수행할 수 있는 다른 작업을 궁금한 경우 Google 설명서를 확인하세요. 레이아웃에 RecyclerView 위젯을 추가한 후 개체에 대한 핸들을 구하고 레이아웃 관리자에 연결하고 표시할 데이터에 대한 어댑터를 연결합니다. @Override 공개 무효 에BindViewHolder (최종 MyViewHolder 홀더, int 위치) { NearByListDetails 앨범 = albumList.get (위치); holder.txtTitle.setText (album.getTitle()); holder.txtAddress.setText (album.getAddress(앨범.getAddress))); holder.txtPrice.setText(album.getPrice()); holder.txtRate.setText(album.getRate()); 피카소 라이브러리를 사용하여 앨범 커버로드 (album.getImage_url()!=null)&!!!!!! album.getImage_url(“”))))))) 피카소.with(mContext).load(album.getImage_url().into(holder.thumbnail)); holder.itemView.setTag(위치); } 이제 RecyclerView OnClickListener를 지원하므로 다음과 같이 MyViewHolder에 넣기만 하면 됩니다 https://uploads.disquscdn.com/images/6da6250ee66b9227dd243d45405bcccc9ff97648653a1653968faa89e5caaad1.png.

그러나 그들은 모든 것을 더 복잡하게 만듭니다. ListView에서 사용하려는 경우 문제를 일으킬 수 있는 여러 가지 방법을 염두에 두어야 합니다. RecyclerView 클릭 수신기에서 json 노드의 개체를 준비 하 고 다음 활동에 전달 해야 합니다. 다음 이 단계를 수행 하면 개별 클릭 이벤트를 감지 하려는 경우 제거 recyclerView.addOnItemTouchListener 모든 요소 터치에 대 한 호출 됩니다 활동에서. 어댑터 클래스 자체의 각 요소에 클릭 이벤트를 할당하고 인터페이스를 통해 활동에 콜백을 노출합니다. onBindViewHolder 및 onCreateViewHolder를 사용하여 컴파일러 오류가 계속 있어야 합니다. onBindViewHolder의 p0 인수를 홀더로 변경하고 p1을 위치로 변경합니다. ViewHolder 패턴을 사용하려면 getView 내부에서 검색해야 하는 다양한 뷰 요소인 멤버가 있는 클래스를 만듭니다. 다음 단계는 카테고리적응기를 인스턴스화하고 어댑터를 ListView에 연결하는 것입니다. 2. Android 추가 RecyclerView 스 와이프 를 클릭하여 삭제 및 실행 취소 2를 구현하기 위해 ListView는 뷰 재활용기를 사용하여 현재 뷰포트 위 또는 위에 재활용 된 뷰를 계속 추가하고 스크롤하는 동안 화면 밖에서 이동할 때 활성 뷰를 재활용 가능한 풀로 이동합니다.

이렇게 하면 ListView는 어댑터에 수백 개의 항목이 있는 경우에도 레이아웃에 할당된 공간과 일부 추가 재활용 가능한 뷰를 채우기 위해 충분한 뷰만 메모리에 유지하면 됩니다. 뷰포트가 코드를 어떻게 변경했는지에 따라 위에서부터 아래쪽 등 다양한 방식으로 행으로 공간을 채웁니다. 아래 이미지는 ListView를 아래로 이동하면 발생하는 일을 시각적으로 요약합니다.