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>