我在Adapter里面判断Position然后设置控件是否显示会显示错乱,请问有什么办法可以根据Position来设置控件是否显示。比如:我想在头和尾都显示一张图片,其他则不显示。
PHPz2017-04-17 17:37:20
XXX.setVisibility(position == XXX ? View.VISIBLE : View.GONE);
else를 실행해야 합니다. 그렇지 않으면 ListView와 RecyclerView 모두 재사용 메커니즘이 있기 때문에 혼란스러울 것입니다. 사용한 아이템은 일정 거리만큼 화면 밖으로 나가면 새로운 데이터를 표시하는 데 재사용됩니다. 특정 아이템의 데이터가 초기화되지 않으면 해당 아이템의 데이터가 마지막 데이터가 되어 데이터 혼란이 발생합니다. . 숨김으로 설정해도 표시로 설정해야 합니다
伊谢尔伦2017-04-17 17:37:20
귀하의 질문을 잘 이해하지 못했습니다. . .
getItemViewType() 메서드와 getItemCount() 메서드를 재정의하고 onBindViewHolder에서 제어할 수 있다고 생각합니다. 위치가 0과 마지막일 때 이미지가 표시되고, 다른 경우에는 올바른 내용이 표시됩니다
이를 위해서는 두 개의 viewHolder를 작성해야 합니다. 하나는 일반적인 데이터 표시용이고 다른 하나는 ImageView가 하나만 있습니다
PHPz2017-04-17 17:37:20
OnCreatViewHolder 중에 먼저 viewType을 설정하고 레이아웃을 로드해야 합니다
그런 다음 위치를 기준으로 유형을 판단하고 데이터 로드 및 표시를 설정합니다.