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