I\'m trying to make an expandable TextView that expands/collapses when a user presses a button. The TextView and ImageButton are in a CardView, which is added to a RecyclerV
LinearLayout.LayoutParams - this could be RelativeLayout.LayoutParams according to yours main layout
mParentContainer - this is RecyclerView - passed to yours adapter
Utils.dpToPx(8+15); - here addition of margins cause they are not counted on measure
totalHeight += 1; - is to cause adapter to bind next view holder
in ViewHolder:
int totalHeight = 0;
for (int i = 0; i < getItemCount(); i++){
View chView = viewHolder . itemView;
chView.measure(
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
);
totalHeight += chView.getMeasuredHeight();
totalHeight += Utils.dpToPx(8 + 15);
}
totalHeight += 1;
LinearLayout.LayoutParams listParams = (LinearLayout.LayoutParams) mParentContainer . getLayoutParams ();
listParams.height = totalHeight;
mParentContainer.setLayoutParams(listParams);