시작 시점에 자식 요소의 가시성이 사라지는 헤더 요소와 자식 요소가있는 리사이클 러 뷰가 있습니다. 나는 그 머리 요소를 클릭했을 때 위치 0의 자식 요소가 표시되어야한다고 (확장을 의미한다) 이것을 성공적으로 달성하기를 원한다. 내가 직면하고있는 유일한 문제는 동일한 위치를 다시 클릭했을 때 동일한보기를 축소하려는 것입니다. 논리 onBingViewHolderExpand recycler보기의 레이아웃 축소
내 재활용보기는 아래와 같습니다 : - 고급의
holder.doc_type.setText(docDatalist.get(position).getDocTypeDesc());
if (position == expandedPosition)
{
holder.recyclerViewImages.setVisibility(View.VISIBLE);
imagerequestserver(docDatalist.get(expandedPosition), vinappserial, holder);
holder.iconexpandCollapse.setImageResource(R.mipmap.expand_4);
}
else {
holder.recyclerViewImages.setVisibility(View.GONE);
holder.iconexpandCollapse.setImageResource(R.mipmap.expand);
}
holder.myDocumentListCollapse.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (expandedPosition >= 0) {
int prev = expandedPosition;
holder.recyclerViewImages.setVisibility(View.VISIBLE);
notifyItemChanged(prev);
}else {
expandedPosition = holder.getAdapterPosition();
notifyItemChanged(expandedPosition);
}
}
});
감사합니다.
제안에 통지 관리 :
클릭 리스너 클릭 이벤트를 생성자에
추가 붕괴 위치 목록을 제공하고 헤더에 적절한 위치를 제거 ['SparseBooleanArray'] (https://developer.android.com/reference/an)를 사용하여이를 구현하십시오. droid/util/SparseBooleanArray.html). 논리가 확장 될 때마다 항목의 위치를 가져 와서 SparseBooleanArray 내부에서 부울 ** true **를 만들고 접힌 상태에서 ** false **로 만드는 것입니다. –
어디에서나'shouldExpand'가 사용되는 것을 볼 수 없습니다 ... – Belladonna
@Belladonna 죄송합니다. 제거하는 것을 잊어 버립니다. – Champandorid