이 문제는 ListView의 캐싱 메커니즘으로 인해 발생하므로 AdapterView(ListView의 상위 클래스) 및 하위 클래스의 경우 어댑터의 getView 함수 외에는 해당 항목의 뷰를 수정하는 작업을 수행하면 안 됩니다. 처형 장소.
여기서 하단 표시를 전환하고 숨기려면 어댑터의 데이터 개체(Entity)에 부울 변수를 정의하는 것이 가장 좋습니다. 부울 변수의 값에 따라 현재 항목의 하단 버튼 그룹을 표시하거나 숨깁니다. getView 함수에 숨깁니다. 이 수정은 지정된 Position의 데이터 객체에 있는 Boolean 값을 수정한 후 어댑터의 informDataSetChanged를 호출하는 것입니다. 여기에는 새로 고침 프로세스가 있지만 대부분의 경우 항목에 상대적으로 큰 사진이 많이 있고 각 사진을 인터넷에서 가져오지 않는 한 이 새로 고침은 표시되지 않습니다.
아이템의 클릭 이벤트도 어댑터에서 커스터마이징해야 한다고 하는데, 기존 OnItemClickListener는 사용하지 않는 것이 가장 좋습니다. RecylerView에서 알 수 있듯이 OnItemClickListener 인터페이스가 없습니다.
게다가 데이터 어댑터는 쓰기엔 너무 반복적이어서 캡슐화하는 것이 가장 좋기 때문에 이 글을 읽어보시고 범용 어댑터를 만들어 보시길 권해드립니다
recycleview를 사용해 보세요
재사용 이유는 if (convertView != null)입니다. ConvertView 없이 직접 로드할 수 있습니다. 물론 목록 보기의 효율성은 낮습니다.
또는 ExpandListview를 사용하세요
이 문제는 ListView의 캐싱 메커니즘으로 인해 발생하므로 AdapterView(ListView의 상위 클래스) 및 하위 클래스의 경우 어댑터의 getView 함수 외에는 해당 항목의 뷰를 수정하는 작업을 수행하면 안 됩니다. 처형 장소.
여기서 하단 표시를 전환하고 숨기려면 어댑터의 데이터 개체(Entity)에 부울 변수를 정의하는 것이 가장 좋습니다. 부울 변수의 값에 따라 현재 항목의 하단 버튼 그룹을 표시하거나 숨깁니다. getView 함수에 숨깁니다. 이 수정은 지정된 Position의 데이터 객체에 있는 Boolean 값을 수정한 후 어댑터의 informDataSetChanged를 호출하는 것입니다. 여기에는 새로 고침 프로세스가 있지만 대부분의 경우 항목에 상대적으로 큰 사진이 많이 있고 각 사진을 인터넷에서 가져오지 않는 한 이 새로 고침은 표시되지 않습니다.
아이템의 클릭 이벤트도 어댑터에서 커스터마이징해야 한다고 하는데, 기존 OnItemClickListener는 사용하지 않는 것이 가장 좋습니다. RecylerView에서 알 수 있듯이 OnItemClickListener 인터페이스가 없습니다.
게다가 데이터 어댑터는 쓰기엔 너무 반복적이어서 캡슐화하는 것이 가장 좋기 때문에 이 글을 읽어보시고 범용 어댑터를 만들어 보시길 권해드립니다