安卓:如何扩大和崩溃RecyclerView大小cardView [英] Android: how to expand and collapse cardView size in RecyclerView

查看:180
本文介绍了安卓:如何扩大和崩溃RecyclerView大小cardView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要扩大和 RecyclerView 在运行时崩溃 CardView 尺寸。
我使用 RecyclerView 来显示一个列表和 CardView RecyclerView 项目。
由于我是新来这个概念,请帮助我。

I need to expand and collapse CardView size in RecyclerView at run time. I use RecyclerView to display a list and CardView as RecyclerView Item. As I am new to this concept please help me.

推荐答案

我有扩大的运行时间。这样,

I have expand on run time. like this,

设置我的onCreateView()视图;

Setting my view on onCreateView();

descriptionCardView.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver
    .OnPreDrawListener() {
@Override
public boolean onPreDraw() {
    detailProductDescription.getViewTreeObserver().removeOnPreDrawListener(this);
    // save the full height
    descriptionViewFullHeight = detailProductDescription.getHeight();

    // initially changing the height to min height
    ViewGroup.LayoutParams layoutParams = descriptionCardView.getLayoutParams();
    layoutParams.height = (int) getActivity().getResources().getDimension(R.dimen
            .product_description_min_height);
    descriptionCardView.setLayoutParams(layoutParams);

    return true;
}

});

和上点击卡片视图

@OnClick(R.id.detail_product_description)
void onProductDescriptionClicked(View view) {
    toggleProductDescriptionHeight();
}

我设置CardView高度扩大和崩溃。

i am setting CardView Height to expand and collapse.

private int descriptionViewFullHeight;    
private void toggleProductDescriptionHeight() {

    int descriptionViewMinHeight = (int) getActivity().getResources().getDimension(R.dimen
            .product_description_min_height);
    if (descriptionCardView.getHeight() == descriptionViewMinHeight) {
        // expand
        ValueAnimator anim = ValueAnimator.ofInt(descriptionCardView.getMeasuredHeightAndState(),
                descriptionViewFullHeight);
        anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator valueAnimator) {
                int val = (Integer) valueAnimator.getAnimatedValue();
                ViewGroup.LayoutParams layoutParams = descriptionCardView.getLayoutParams();
                layoutParams.height = val;
                descriptionCardView.setLayoutParams(layoutParams);
            }
        });
        anim.start();
    } else {
        // collapse
        ValueAnimator anim = ValueAnimator.ofInt(descriptionCardView.getMeasuredHeightAndState(),
                descriptionViewMinHeight);
        anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator valueAnimator) {
                int val = (Integer) valueAnimator.getAnimatedValue();
                ViewGroup.LayoutParams layoutParams = descriptionCardView.getLayoutParams();
                layoutParams.height = val;
                descriptionCardView.setLayoutParams(layoutParams);
            }
        });
        anim.start();
    }
}

这篇关于安卓:如何扩大和崩溃RecyclerView大小cardView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆