ListView自定义适配器+解决Scroll与listview滑动冲突

listview自定义适配器以及解决滑动冲突
生成一个类继承BaseAdpter继承方法

package adpter;

import android.content.Context;
import android.media.Image;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

import com.application.R;

import java.util.List;

public class singadpter extends BaseAdapter {
    Context context;
    List<String> title;
    List<String> jianjie;

    List<Integer> images;
    public singadpter(Context context,List<String> titles,List<String> jianjie,List<Integer> images){
        super();
        this.context=context;
        this.title=titles;
        this.jianjie=jianjie;
        this.images=images;
    }

    @Override
    public int getCount() {
        return title.size();
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
         view = LayoutInflater.from(context).inflate(R.layout.list_shishi,null);//将布局文件绑定到View
     ImageView imageView=view.findViewById(R.id.icon1);
     TextView xwtitle=view.findViewById(R.id.text_biaoti);
     TextView xwjianjie=view.findViewById(R.id.text_jianjie);
     imageView.setImageResource(images.get(i));
     xwtitle.setText(title.get(i));
     xwjianjie.setText(jianjie.get(i));
        return view;
    }
}

最后将自定义的布局文件绑定并设置数据
然后在主页面listview绑定自定义的适配器即可

滑动冲突
Scrollview中放入listview可能会导致listview不能滑动

解决方法:给LIstView 添加一个触摸监听事件:

listView_shishi.setOnTouchListener(new ListView.OnTouchListener() {//添加触摸监听事件,解决滑动冲突
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                int action = event.getAction();
                switch (action) {
                    case MotionEvent.ACTION_DOWN:
                        // Disallow ScrollView to intercept touch events.
                        v.getParent().requestDisallowInterceptTouchEvent(true);//当触摸按下时关闭主页面滑动
                        break;

                    case MotionEvent.ACTION_UP:
                        // Allow ScrollView to intercept touch events.
                        v.getParent().requestDisallowInterceptTouchEvent(false);
                        break;
                }

                // Handle ListView touch events.
                v.onTouchEvent(event);
                return true;
            }
        });

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值