Android中RecyclerView

来源:互联网 发布:阿里云通用储值卡 编辑:程序博客网 时间:2024/04/29 19:34
package com.hhzmy.fragment;import android.content.Context;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v7.widget.GridLayoutManager;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.util.Log;import android.view.GestureDetector;import android.view.LayoutInflater;import android.view.MotionEvent;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import android.widget.Toast;import com.example.redbabydemo.R;import com.hhzmy.ToolsTest.Tools;import com.hhzmy.bean.GsonBeanDemo;import com.hhzmy.bean.MostSeriesBean;import com.hhzmy.okhttptest.OkHttp;import com.hhzmy.recyclerview.MostRightAdapter;import java.io.IOException;import java.util.ArrayList;import java.util.List;import okhttp3.Request;/** * Created by 贾焕雪 on 2016-11-07. */public class ClassFragment extends Fragment {    private String json = "";    private MostRightAdapter adapter;    private View view;    private RecyclerView recyclerViewLeft;    private RecyclerView recyclerViewRight;    private List<String> listLeft;    private List<MostSeriesBean> li ;    public void data(){        listLeft = new ArrayList<>();     listLeft.add("宝宝奶粉");listLeft.add("宝宝尿裤");listLeft.add("辅食营养");listLeft.add("宝宝用品");listLeft.add("宝宝玩乐");        listLeft.add("妈妈专区");listLeft.add("童装童鞋");listLeft.add("图书天地");listLeft.add("童车童床");    }    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {        view = View.inflate(getActivity(),R.layout.class_fragment,null);        recyclerViewLeft = (RecyclerView) view.findViewById(R.id.left_list);        recyclerViewRight = (RecyclerView) view.findViewById(R.id.right_list);        //布局管理器        recyclerViewLeft.setLayoutManager(new LinearLayoutManager(getActivity()));        GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), 3);        recyclerViewRight.setLayoutManager(gridLayoutManager);        data();        init();        recyclerViewLeft.setAdapter(new RecyclerView.Adapter() {            @Override            public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {                Item1ViewHolder holder = new Item1ViewHolder(LayoutInflater.from(                        getActivity()).inflate(R.layout.left_list_item, parent,                        false));                return holder;            }            @Override            public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {                    ((Item1ViewHolder) holder).mTextView.setText(listLeft.get(position));            }            @Override            public int getItemCount() {                return 9;            }            class Item1ViewHolder extends RecyclerView.ViewHolder{                TextView mTextView;                public Item1ViewHolder(View itemView) {                    super(itemView);                    mTextView=(TextView)itemView.findViewById(R.id.textView_left);                }            }        });        //点击事件        recyclerViewLeft.addOnItemTouchListener(new RecyclerItemClickListener(getActivity(),recyclerViewLeft,new RecyclerItemClickListener.OnItemClickListener() {            @Override            public void onItemClick(View view, int position) {                Toast.makeText(getActivity(),"点击"+position,Toast.LENGTH_SHORT).show();            }            @Override            public void onItemLongClick(View view, int position) {                Toast.makeText(getActivity(),"长按"+position,Toast.LENGTH_SHORT).show();            }        }));        return view;    }    private void init() {        OkHttp.getAsync("http://mock.eoapi.cn/success/ZnHvhSzShrlvNQ4Lp6dfIDSXcWFcK6k8", new OkHttp.DataCallBack() {            @Override            public void requestFailure(Request request, IOException e) {            }            @Override            public void requestSuccess(String result) throws Exception {                List<MostSeriesBean> lists = new ArrayList<>();                GsonBeanDemo gson = Tools.parseJsonWithGson(result,GsonBeanDemo.class);                List<GsonBeanDemo.RsBean.ChildrenBeanX.ChildrenBean> list = gson.getRs().get(0).getChildren().get(0).getChildren();                for (int i = 0;i <= list.size();i++){                    String imgApp = list.get(1).getImgApp();                    String dirName = list.get(1).getDirName();                    Log.i("------------dirName--",dirName);                    MostSeriesBean bean = new MostSeriesBean(dirName,imgApp);                    lists.add(bean);                    if (i==list.size()){                        li = new ArrayList<>();                        li.addAll(lists);                        Log.i("--------------li---",li.toString());                        adapter = new MostRightAdapter(getActivity(),li);                        recyclerViewRight.setAdapter(adapter);                        Log.i("--------------",li.toString());                        break;                   }               }            }        });    }    //点击事件    static class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener {        public interface OnItemClickListener {            void onItemClick(View view, int position);            void onItemLongClick(View view, int position);        }        private OnItemClickListener mListener;        private GestureDetector mGestureDetector;        public RecyclerItemClickListener(Context context, final RecyclerView recyclerView, OnItemClickListener listener) {            mListener = listener;            mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {                @Override                public boolean onSingleTapUp(MotionEvent e) {                    return true;                }                @Override                public void onLongPress(MotionEvent e) {                    View childView = recyclerView.findChildViewUnder(e.getX(), e.getY());                    if (childView != null && mListener != null) {                        mListener.onItemLongClick(childView, recyclerView.getChildAdapterPosition(childView));                    }                }            });        }        @Override        public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) {            View childView = view.findChildViewUnder(e.getX(), e.getY());            if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) {                mListener.onItemClick(childView, view.getChildAdapterPosition(childView));            }            return false;        }        @Override        public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) {        }        @Override        public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {        }    }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <android.support.v7.widget.RecyclerView        android:id="@+id/left_list"        android:layout_width="90dp"        android:layout_height="match_parent"        android:background="@color/white"        android:scrollbars="none"/>    <android.support.v7.widget.RecyclerView        android:id="@+id/right_list"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:background="#ff0000"        android:scrollbars="none" /></LinearLayout>

package com.hhzmy.recyclerview;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import com.example.redbabydemo.R;import com.hhzmy.bean.MostSeriesBean;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.List;/** * Created by 贾焕雪 on 2016-11-22. */public class MostRightAdapter extends RecyclerView.Adapter{    private Context context;    private List<MostSeriesBean> list;    public MostRightAdapter(Context context, List<MostSeriesBean> list) {        this.context = context;        this.list = list;    }    @Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        Item1ViewHolder holder = new Item1ViewHolder(LayoutInflater.from(                context).inflate(R.layout.right_list_item, parent,                false));        return holder;    }    @Override    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {        ((Item1ViewHolder) holder).mTextView.setText(list.get(position).getName());        ImageLoader.getInstance().displayImage(list.get(position).getImageurl(),((Item1ViewHolder) holder).imageView);    }    @Override    public int getItemCount() {        return list.size();    }    class Item1ViewHolder extends RecyclerView.ViewHolder{        TextView mTextView;        ImageView imageView;        public Item1ViewHolder(View itemView) {            super(itemView);            mTextView=(TextView)itemView.findViewById(R.id.textView_right);            imageView = (ImageView) itemView.findViewById(R.id.imageView_right);        }    }}

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:orientation="vertical">    <ImageView        android:id="@+id/imageView_right"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@mipmap/ic_launcher"        android:layout_gravity="center"/>    <TextView        android:id="@+id/textView_right"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textSize="16dp"        android:text="一段奶粉"        android:layout_gravity="center"/></LinearLayout>


左面的
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content">    <TextView        android:id="@+id/textView_left"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textSize="18dp"        android:layout_marginTop="25dp"        android:layout_marginLeft="5dp"/></LinearLayout>



0 0
原创粉丝点击