nếu tôi mở rộng bất kỳ mục trong recyclerview nó giãn nở tốt nhưng khi tôi di chuyển xuống các recylerview tôi tìm thấy các mặt hàng khác cũng được mở rộng, do tái chế phải mất kích thước mở rộng không phải là gốc mộtmở rộng recyclerview mục
public class FeedAdapter extends RecyclerView.Adapter<FeedAdapter.MyViewHolder> implements View.OnClickListener {
private LayoutInflater inflater;
private Context mcontext;
private int mOriginalHeight = 0;
private boolean mIsViewExpanded = false;
public FeedAdapter(Context context) {
inflater = LayoutInflater.from(context);
mcontext = context;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = inflater.inflate(R.layout.custom_row, viewGroup, false);
MyViewHolder holder = new MyViewHolder(view);
holder.frame.setOnClickListener(this);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder myViewHolder, int i) {
}
@Override
public int getItemCount() {
return 100;
}
@Override
public void onClick(final View v) {
if (mOriginalHeight == 0) {
mOriginalHeight = v.getHeight();
}
ValueAnimator valueAnimator;
if (v.getHeight() < (mOriginalHeight + (int) (mOriginalHeight * 1.5))) {
valueAnimator = ValueAnimator.ofInt(mOriginalHeight, mOriginalHeight + (int) (mOriginalHeight * 1.5));
} else {
valueAnimator = ValueAnimator.ofInt(mOriginalHeight + (int) (mOriginalHeight * 1.5), mOriginalHeight);
}
valueAnimator.setDuration(300);
valueAnimator.setInterpolator(new LinearInterpolator());
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
Integer value = (Integer) animation.getAnimatedValue();
v.getLayoutParams().height = value.intValue();
v.requestLayout();
}
});
valueAnimator.start();
}
class MyViewHolder extends RecyclerView.ViewHolder {
FrameLayout frame;
public MyViewHolder(View itemView) {
super(itemView);
frame = (FrameLayout) itemView.findViewById(R.id.base);
}
}
}
vì vậy làm cách nào để khắc phục điều đó và cũng có cách nào tốt hơn để mở rộng và thu gọn các mục?
Bạn có thể giải thích cách bạn đạt được hiệu quả không? – borax12
mã tôi sử dụng không hiệu quả vì nó mở rộng ô thành một kích thước cụ thể. Cách tốt hơn để mở rộng các ô là sử dụng mã [Here] (http://stackoverflow.com/a/13381228/4561402/) làm nó mở rộng nó để bọc nội dung, bởi vì các tế bào không có cùng chiều cao –
@mohabelmahdy bạn có thể cung cấp toàn bộ giải pháp làm việc được không? Xin vui lòng – goonerDroid