package mcxtzhang.recyclerviewdemo.nestrv;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.mcxtzhang.commonadapter.databinding.rv.BaseBindingAdapter;
import com.mcxtzhang.commonadapter.databinding.rv.BaseBindingVH;
import java.util.ArrayList;
import mcxtzhang.recyclerviewdemo.R;
import mcxtzhang.recyclerviewdemo.databinding.FragmentNestRv1Binding;
import mcxtzhang.recyclerviewdemo.databinding.ItemNestRv1Binding;
/**
* A simple {@link Fragment} subclass.
* Activities that contain this fragment must implement the
* {@link NestRvFragment1.OnFragmentInteractionListener} interface
* to handle interaction events.
* Use the {@link NestRvFragment1#newInstance} factory method to
* create an instance of this fragment.
*/
public class NestRvFragment1 extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
private OnFragmentInteractionListener mListener;
private ArrayList<TestBean> mDatas;
public NestRvFragment1() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment NestRvFragment1.
*/
// TODO: Rename and change types and number of parameters
public static NestRvFragment1 newInstance(String param1, String param2) {
NestRvFragment1 fragment = new NestRvFragment1();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
FragmentNestRv1Binding binding = FragmentNestRv1Binding.inflate(LayoutInflater.from(getActivity()));
binding.rv.setLayoutManager(new LinearLayoutManager(getActivity()));
initDatas();
binding.rv.setFocusable(false);
BaseBindingAdapter<TestBean, ItemNestRv1Binding> baseBindingAdapter = new BaseBindingAdapter<TestBean, ItemNestRv1Binding>(getActivity(), mDatas, R.layout.item_nest_rv_1) {
@Override
public void onBindViewHolder(BaseBindingVH<ItemNestRv1Binding> holder, int position) {
holder.getBinding().nestRv.setFocusable(false);
//官方的bug 嵌套RecyclerView
if (holder.getBinding().nestRv.getLayoutManager() == null) {
holder.getBinding().nestRv.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
}
if (holder.getBinding().nestRv.getAdapter() == null) {
BaseBindingAdapter baseBindingAdapter1 = new BaseBindingAdapter(getActivity(), mDatas, R.layout.item_nest_rv_1) {
@Override
public void onBindViewHolder(BaseBindingVH holder, int position) {
super.onBindViewHolder(holder, position);
}
};
baseBindingAdapter1.setHasStableIds(true);
holder.getBinding().nestRv.setAdapter(baseBindingAdapter1);
}
super.onBindViewHolder(holder, position);
}
};
baseBindingAdapter.setHasStableIds(true);
binding.rv.setAdapter(baseBindingAdapter);
return binding.getRoot();
}
// TODO: Rename method, update argument and hook method into UI event
public void onButtonPressed(Uri uri) {
if (mListener != null) {
mListener.onFragmentInteraction(uri);
}
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnFragmentInteractionListener) {
mListener = (OnFragmentInteractionListener) context;
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
/**
* This interface must be implemented by activities that contain this
* fragment to allow an interaction in this fragment to be communicated
* to the activity and potentially other fragments contained in that
* activity.
* <p>
* See the Android Training lesson <a href=
* "http://developer.android.com/training/basics/fragments/communicating.html"
* >Communicating with Other Fragments</a> for more information.
*/
public interface OnFragmentInteractionListener {
// TODO: Update argument type and name
void onFragmentInteraction(Uri uri);
}
private void initDatas() {
int i = 0;
mDatas = new ArrayList<>();
for (int j = 0; j < 1; j++) {
mDatas.add(new TestBean((i++) + "", "http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg"));
mDatas.add(new TestBean((i++) + "", "http://fudaoquan.com/wp-content/uploads/2016/04/wanghong.jpg"));
mDatas.add(new TestBean((i++) + "", "http://imgs.ebrun.com/resources/2016_03/2016_03_25/201603259771458878793312_origin.jpg"));
mDatas.add(new TestBean((i++) + "", "http://p14.go007.com/2014_11_02_05/a03541088cce31b8_1.jpg"));
mDatas.add(new TestBean((i++) + "", "http://news.k618.cn/tech/201604/W020160407281077548026.jpg"));
mDatas.add(new TestBean((i++) + "", "http://www.kejik.com/image/1460343965520.jpg"));
mDatas.add(new TestBean((i++) + "", "http://cn.chinadaily.com.cn/img/attachement/jpg/site1/20160318/eca86bd77be61855f1b81c.jpg"));
mDatas.add(new TestBean((i++) + "", "http://imgs.ebrun.com/resources/2016_04/2016_04_12/201604124411460430531500.jpg"));
mDatas.add(new TestBean((i++) + "", "http://imgs.ebrun.com/resources/2016_04/2016_04_24/201604244971461460826484_origin.jpeg"));
mDatas.add(new TestBean((i++) + "", "http://www.lnmoto.cn/bbs/data/attachment/forum/201408/12/074018gshshia3is1cw3sg.jpg"));
mDatas.add(new TestBean((i++) + "", "http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg"));
mDatas.add(new TestBean((i++) + "", "http://fudaoquan.com/wp-content/uploads/2016/04/wanghong.jpg"));
mDatas.add(new TestBean((i++) + "", "http://imgs.ebrun.com/resources/2016_03/2016_03_25/201603259771458878793312_origin.jpg"));
mDatas.add(new TestBean((i++) + "", "http://p14.go007.com/2014_11_02_05/a03541088cce31b8_1.jpg"));
mDatas.add(new TestBean((i++) + "", "http://news.k618.cn/tech/201604/W020160407281077548026.jpg"));
mDatas.add(new TestBean((i++) + "", "http://www.kejik.com/image/1460343965520.jpg"));
mDatas.add(new TestBean((i++) + "", "http://cn.chinadaily.com.cn/img/attachement/jpg/site1/20160318/eca86bd77be61855f1b81c.jpg"));
mDatas.add(new TestBean((i++) + "", "http://imgs.ebrun.com/resources/2016_04/2016_04_12/201604124411460430531500.jpg"));
mDatas.add(new TestBean((i++) + "", "http://imgs.ebrun.com/resources/2016_04/2016_04_24/201604244971461460826484_origin.jpeg"));
mDatas.add(new TestBean((i++) + "", "http://www.lnmoto.cn/bbs/data/attachment/forum/201408/12/074018gshshia3is1cw3sg.jpg"));
}
}
}