android listView列表item下子列表的几种方法

可能对于大家来说,现在的很多应用里都用到了,仅提供给需要的朋友

先看图下面是我做的应用里面的截图


请看两张小图


类似美团和百度外卖列表

下面贴出代码

方法一

  用代码创建

ImageView image1 = helper.getView(R.id.imgv_tiny);
        String url = item.getListImg();
        new Core.Builder().view(image1).size(300, 300).url(url)
                .loadBitmapRes(R.drawable.default_photo).doTask();
        helper.setText(R.id.txtv_title, item.getShopName());
        helper.setText(R.id.txtv_business_type, item.getShopTypeName());
        helper.setText(R.id.txtv_business_adress, " " + item.getAddress());
        helper.setText(R.id.txtv_business_distance,
                item.getDistance());
        helper.setText(R.id.txtv_business_sell,
                "已售:" + item.getSales());
        if (item.getDiscountList().size() > 0) {
            ImageView huiImageView = helper.getView(R.id.hui_image_view);
            new Core.Builder().view(huiImageView).size(200, 200).url(item.getDiscountList().get(0).getUrl())
                    .loadBitmapRes(R.drawable.default_photo).doTask();
            helper.getView(R.id.hui_layout).setVisibility(View.VISIBLE);
            //.replace("#", "\n")
            helper.setText(R.id.txtv_hui, item.getDiscountList().get(0).getInfo());
        } else {
            helper.getView(R.id.hui_layout).setVisibility(View.GONE);
        }
        View dsView = helper.getView(R.id.discount_layout);
        dsView.setEnabled(false);
        final LinearLayout imageLayout = (LinearLayout) helper.getView(R.id.hui_image_layout);
        final LinearLayout dataLayout = (LinearLayout) helper.getView(R.id.hui_data_layout);
        imageLayout.removeAllViews();
        dataLayout.removeAllViews();
        final ImageView showImageView = (ImageView) helper.getView(R.id.show_image_view);
        if (item.getDiscountList().size() > 1) {
            dsView.setEnabled(true);
            showImageView.setVisibility(View.VISIBLE);
//            dataLayout.setVisibility(View.GONE);
//            imageLayout.setVisibility(View.VISIBLE);
            if (dataLayout.getVisibility() == View.VISIBLE) {
                imageLayout.setVisibility(View.GONE);
            } else {
                imageLayout.setVisibility(View.VISIBLE);
            }
            int width =helper.getView(R.id.hui_image_view).getLayoutParams().width;
            ViewInject.toast(helper.getView(R.id.hui_image_view).getLayoutParams().width + "#####"
                    + DensityUtil.dip2px(mCxt, helper.getView(R.id.hui_image_view).getLayoutParams().width));
            for (int i = 1; i < item.getDiscountList().size(); i++) {
                //创建imageview 添加到imageLayout里面
                ImageView imageView = new ImageView(mCxt);
                imageView.setLayoutParams(new LayoutParams(width, width));
                imageView.setPadding(0, 0, 10, 0);
                imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
                new Core.Builder().view(imageView).size(200, 200).url(item.getDiscountList().get(i).getUrl())
                        .loadBitmapRes(R.drawable.default_photo).doTask();
                imageLayout.addView(imageView);
                //创建layout,imageview,textview###,其次把imageview,Textview,添加到创建的layout里面
                //之后把创建的每个layout添加到外部layout
                LinearLayout mLinearLayout = new LinearLayout(mCxt);
                mLinearLayout.setLayoutParams(new LinearLayout.LayoutParams(
                        LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
                mLinearLayout.setOrientation(LinearLayout.HORIZONTAL);
                mLinearLayout.setGravity(Gravity.CENTER_VERTICAL);

                ImageView imageView1 = new ImageView(mCxt);
                imageView1.setLayoutParams(new LayoutParams(width, width));
                imageView1.setPadding(0, 0, 8, 0);
                imageView1.setScaleType(ImageView.ScaleType.FIT_CENTER);
                new Core.Builder().view(imageView1).size(200, 200).url(item.getDiscountList().get(i).getUrl())
                        .loadBitmapRes(R.drawable.default_photo).doTask();

                TextView mTextView = new TextView(mCxt);
                mTextView.setTextColor(mCxt.getResources().getColor(R.color.main_tab_txt));
                mTextView.setTextSize(13);
                mTextView.setGravity(Gravity.CENTER_VERTICAL);
                mTextView.setText(item.getDiscountList().get(i).getInfo());

                mLinearLayout.addView(imageView1);
                mLinearLayout.addView(mTextView);
                dataLayout.addView(mLinearLayout);
            }
        } else {
            showImageView.setVisibility(View.GONE);
        }

        //局部点击事件,进行判断如果能点击则true,否则false
        dsView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (dataLayout.getVisibility() == View.GONE) {
                    showImageView.setImageResource(R.drawable.hidden_icon);
                    dataLayout.setVisibility(View.VISIBLE);
                    imageLayout.setVisibility(View.GONE);
                } else {
                    showImageView.setImageResource(R.drawable.show_icon);
                    dataLayout.setVisibility(View.GONE);
                    imageLayout.setVisibility(View.VISIBLE);
                }
            }
        });

        helper.getConvertView().setBackgroundResource(R.drawable.list_selector_bg);

方法二

listView嵌套listview

 ImageView image1 = helper.getView(R.id.imgv_tiny);
        String url = item.getListImg();
        new Core.Builder().view(image1).size(300, 300).url(url)
                .loadBitmapRes(R.drawable.default_photo).doTask();
        helper.setText(R.id.txtv_title, item.getShopName());
        helper.setText(R.id.txtv_business_type, item.getShopTypeName());
        helper.setText(R.id.txtv_business_adress, " " + item.getAddress());
        helper.setText(R.id.txtv_business_distance,
                item.getDistance());
        helper.setText(R.id.txtv_business_sell,
                "已售:" + item.getSales());
        if (item.getDiscountList().size() > 0) {
            ImageView huiImageView = helper.getView(R.id.hui_image_view);
            new Core.Builder().view(huiImageView).size(200, 200).url(item.getDiscountList().get(0).getUrl())
                    .loadBitmapRes(R.drawable.default_photo).doTask();
            helper.getView(R.id.hui_layout).setVisibility(View.VISIBLE);
            //.replace("#", "\n")
            helper.setText(R.id.txtv_hui, item.getDiscountList().get(0).getInfo());
        } else {
            helper.getView(R.id.hui_layout).setVisibility(View.GONE);
        }
        View dsView = helper.getView(R.id.discount_layout);
        dsView.setEnabled(false);
        final LinearLayout imageLayout = (LinearLayout) helper.getView(R.id.hui_image_layout);
        final LinearLayout dataLayout = (LinearLayout) helper.getView(R.id.hui_data_layout);
        imageLayout.removeAllViews();
        dataLayout.removeAllViews();
        final ImageView showImageView = (ImageView) helper.getView(R.id.show_image_view);
        if (item.getDiscountList().size() > 1) {
            dsView.setEnabled(true);
            showImageView.setVisibility(View.VISIBLE);
            if (dataLayout.getVisibility() == View.VISIBLE) {
                imageLayout.setVisibility(View.GONE);
            } else {
                imageLayout.setVisibility(View.VISIBLE);
            }
            List<Preferential> huis=new ArrayList<Preferential>();
            for (int i = 1; i < item.getDiscountList().size(); i++) {
                Preferential preferential=new Preferential();
                preferential.setContext(item.getDiscountList().get(i).getInfo());
                preferential.setImageUrl(item.getDiscountList().get(i).getUrl());
                huis.add(preferential);
            }
            PreferentialAdapter preferentialAdapter=new PreferentialAdapter(mCxt,huis);
            ((ListView)helper.getView(R.id.hui_listview)).setAdapter(preferentialAdapter);
        } else {
            showImageView.setVisibility(View.GONE);
        }

        //局部点击事件,进行判断如果能点击则true,否则false
        dsView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (dataLayout.getVisibility() == View.GONE) {
                    showImageView.setImageResource(R.drawable.hidden_icon);
                    dataLayout.setVisibility(View.VISIBLE);
                    imageLayout.setVisibility(View.GONE);
                } else {
                    showImageView.setImageResource(R.drawable.show_icon);
                    dataLayout.setVisibility(View.GONE);
                    imageLayout.setVisibility(View.VISIBLE);
                }
            }
        });

        helper.getConvertView().setBackgroundResource(R.drawable.list_selector_bg);

方法三

新建layout布局进行循环

 ImageView image1 = helper.getView(R.id.imgv_tiny);
        String url = item.getListImg();
        new Core.Builder().view(image1).size(300, 300).url(url)
                .loadBitmapRes(R.drawable.default_photo).doTask();
        helper.setText(R.id.txtv_title, item.getShopName());
        helper.setText(R.id.txtv_business_type, item.getShopTypeName());
        helper.setText(R.id.txtv_business_adress, " " + item.getAddress());
        helper.setText(R.id.txtv_business_distance,
                item.getDistance());
        helper.setText(R.id.txtv_business_sell,
                "已售:" + item.getSales());
        if (item.getDiscountList().size() > 0) {
            ImageView huiImageView = helper.getView(R.id.hui_image_view);
            new Core.Builder().view(huiImageView).size(200, 200).url(item.getDiscountList().get(0).getUrl())
                    .loadBitmapRes(R.drawable.default_photo).doTask();
            helper.getView(R.id.hui_layout).setVisibility(View.VISIBLE);
            //.replace("#", "\n")
            helper.setText(R.id.txtv_hui, item.getDiscountList().get(0).getInfo());
        } else {
            helper.getView(R.id.hui_layout).setVisibility(View.GONE);
        }
        View dsView = helper.getView(R.id.discount_layout);
        dsView.setEnabled(false);
        final LinearLayout imageLayout = (LinearLayout) helper.getView(R.id.hui_image_layout);
        final LinearLayout dataLayout = (LinearLayout) helper.getView(R.id.hui_data_layout);
        imageLayout.removeAllViews();
        dataLayout.removeAllViews();
        final ImageView showImageView = (ImageView) helper.getView(R.id.show_image_view);
        if (item.getDiscountList().size() > 1) {
            dsView.setEnabled(true);
            showImageView.setVisibility(View.VISIBLE);
            if (dataLayout.getVisibility() == View.VISIBLE) {
                imageLayout.setVisibility(View.GONE);
            } else {
                imageLayout.setVisibility(View.VISIBLE);
            }
//            int width =helper.getView(R.id.hui_image_view).getLayoutParams().width;
//            ViewInject.toast(helper.getView(R.id.hui_image_view).getLayoutParams().width + "#####"
//                    + DensityUtil.dip2px(mCxt, helper.getView(R.id.hui_image_view).getLayoutParams().width));
            for (int i = 1; i < item.getDiscountList().size(); i++) {
                View view2= LayoutInflater.from(mCxt).inflate(R.layout.yrd_preferential_image_item, null);
                ImageView imageView2=(ImageView) view2.findViewById(R.id.hui_image_view2);
                new Core.Builder().view(imageView2).size(200, 200).url(item.getDiscountList().get(i).getUrl())
                        .loadBitmapRes(R.drawable.default_photo).doTask();
                imageLayout.addView(view2);
                //创建imageview 添加到imageLayout里面
                View view1= LayoutInflater.from(mCxt).inflate(R.layout.yrd_preferential_item, null);
                ImageView imageView=(ImageView) view1.findViewById(R.id.hui_image_view1);
                TextView textView=(TextView)view1.findViewById(R.id.txtv_hui1) ;
                new Core.Builder().view(imageView).size(200, 200).url(item.getDiscountList().get(i).getUrl())
                        .loadBitmapRes(R.drawable.default_photo).doTask();
                textView.setText(item.getDiscountList().get(i).getInfo());
                dataLayout.addView(view1);
            }
        } else {
            showImageView.setVisibility(View.GONE);
        }

        //局部点击事件,进行判断如果能点击则true,否则false
        dsView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (dataLayout.getVisibility() == View.GONE) {
                    showImageView.setImageResource(R.drawable.hidden_icon);
                    dataLayout.setVisibility(View.VISIBLE);
                    imageLayout.setVisibility(View.GONE);
                } else {
                    showImageView.setImageResource(R.drawable.show_icon);
                    dataLayout.setVisibility(View.GONE);
                    imageLayout.setVisibility(View.VISIBLE);
                }
            }
        });

        helper.getConvertView().setBackgroundResource(R.drawable.list_selector_bg);
  此上代码仅供参考,如果有问题,可以留言

本人用的是第三种

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值