Activity类或Fragment类(这里用的是fragment)
public class SecondFragment extends Fragment implements ICircleView {
Unbinder unbinder;
@BindView(R.id.xrecy_cler_view)
XRecyclerView xrecyClerView;
private CirclePresenter circlePresenter;
private LinearLayoutManager linearLayoutManager;
int page = 1;
private MyCircleAdapter circleAdapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.second_layout, container, false);
unbinder = ButterKnife.bind(this, view);
//创建线性布局
linearLayoutManager = new LinearLayoutManager(getActivity());
linearLayoutManager.setOrientation(OrientationHelper.VERTICAL);
//设置条目之间的的间距
xrecyClerView.addItemDecoration(new SpaceItemDecoration(30));
xrecyClerView.setLayoutManager(linearLayoutManager);
//初始化presenter
circlePresenter = new CirclePresenter(SecondFragment.this);
circlePresenter.getPresenterData(page);
xrecyClerView.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
circlePresenter.getPresenterData(1);
circleAdapter.notifyDataSetChanged();
xrecyClerView.refreshComplete();
}
@Override
public void onLoadMore() {
circlePresenter.getPresenterData(page++);
circleAdapter.notifyDataSetChanged();
xrecyClerView.loadMoreComplete();
}
});
return view;
}
@Override
public void getViewData(final String data) {
// Log.i("aa", "run: " + data);
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
CircleBean circleBean = gson.fromJson(data, CircleBean.class);
List<CircleBean.ResultBean> circleBeanResult = circleBean.getResult();
//创建适配器
circleAdapter = new MyCircleAdapter(getActivity(), circleBeanResult);
xrecyClerView.setAdapter(circleAdapter);
}
});
}
@Override
public void onDestroyView() {
super.onDestroyView();
unbinder.unbind();
}
}
创建主页面Adapter
public class MyCircleAdapter extends XRecyclerView.Adapter<XRecyclerView.ViewHolder> {
private Context context;
private List<CircleBean.ResultBean> circleBeanResult;
public static final int TYPE_ONE_IMAGE = 0;
public static final int TYPE_TWO_IMAGE = 1;
public MyCircleAdapter(Context context, List<CircleBean.ResultBean> circleBeanResult) {
this.context = context;
this.circleBeanResult = circleBeanResult;
}
@Override
public int getItemCount() {
return circleBeanResult.size();
}
@NonNull
@Override
public XRecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
if (i == TYPE_ONE_IMAGE) {
return new ItemOneViewHolder(LayoutInflater.from(context).inflate(R.layout.circle_layout, viewGroup, false));
} else {
return new ItemTwoViewHolder(LayoutInflater.from(context).inflate(R.layout.circle_two__layout, viewGroup, false));
}
}
@Override
public void onBindViewHolder(@NonNull XRecyclerView.ViewHolder viewHolder, int i) {
if (viewHolder instanceof ItemOneViewHolder) {
((ItemOneViewHolder) viewHolder).circleTextoneName.setText(circleBeanResult.get(i).getNickName());
//Glid圆形图片
RequestOptions requestOptions = RequestOptions.circleCropTransform();
Glide.with(context).load(circleBeanResult.get(i).getHeadPic()).apply(requestOptions).into(((ItemOneViewHolder) viewHolder).circleOneImg);
//long类型转化成data类型
Long dateLong = Long.valueOf(circleBeanResult.get(i).getCreateTime());
String time = new SimpleDateFormat("yyyy-MM-dd hh:ss").format(new Date(dateLong));
((ItemOneViewHolder) viewHolder).circleTextoneTime.setText(time);
((ItemOneViewHolder) viewHolder).circleTextoneTitle.setText(circleBeanResult.get(i).getContent());
((ItemOneViewHolder) viewHolder).textOnePrise.setText(circleBeanResult.get(i).getGreatNum());
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
((ItemOneViewHolder) viewHolder).recyclerOneView.setLayoutManager(linearLayoutManager);
MyOneItmeAdapter oneItmeAdapter = new MyOneItmeAdapter(context, circleBeanResult);
((ItemOneViewHolder) viewHolder).recyclerOneView.setAdapter(oneItmeAdapter);
}
if (viewHolder instanceof ItemTwoViewHolder) {
((ItemTwoViewHolder) viewHolder).circleTexttwoName.setText(circleBeanResult.get(i).getNickName());
RequestOptions requestOptions = RequestOptions.circleCropTransform();
Glide.with(context).load(circleBeanResult.get(i).getHeadPic()).apply(requestOptions).into(((ItemTwoViewHolder) viewHolder).circleTwoImg);
Long dateLong = Long.valueOf(circleBeanResult.get(i).getCreateTime());
String time = new SimpleDateFormat("yyyy-MM-dd hh:ss").format(new Date(dateLong));
((ItemTwoViewHolder) viewHolder).circleTexttwoTime.setText(time);
((ItemTwoViewHolder) viewHolder).circleTexttwoTitle.setText(circleBeanResult.get(i).getContent());
((ItemTwoViewHolder) viewHolder).textTwoPrise.setText(circleBeanResult.get(i).getGreatNum());
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
((ItemTwoViewHolder) viewHolder).recyclerTwoView.setLayoutManager(linearLayoutManager);
MyTwoItmeAdapter twoItmeAdapter = new MyTwoItmeAdapter(context, circleBeanResult);
((ItemTwoViewHolder) viewHolder).recyclerTwoView.setAdapter(twoItmeAdapter);
}
}
@Override
public int getItemViewType(int position) {
return position % 2;
}
public class ItemOneViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.circle_one_img)
ImageView circleOneImg;
@BindView(R.id.circle_textone_name)
TextView circleTextoneName;
@BindView(R.id.circle_textone_time)
TextView circleTextoneTime;
@BindView(R.id.top_relativity)
RelativeLayout topRelativity;
@BindView(R.id.circle_textone_title)
TextView circleTextoneTitle;
@BindView(R.id.recycler_one_view)
RecyclerView recyclerOneView;
@BindView(R.id.text_one_prise)
TextView textOnePrise;
@BindView(R.id.circle_imgone_prise)
ImageView circleImgonePrise;
public ItemOneViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
}
public class ItemTwoViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.circle_two_img)
ImageView circleTwoImg;
@BindView(R.id.circle_texttwo_name)
TextView circleTexttwoName;
@BindView(R.id.circle_texttwo_time)
TextView circleTexttwoTime;
@BindView(R.id.top_two_relativity)
RelativeLayout topTwoRelativity;
@BindView(R.id.circle_texttwo_title)
TextView circleTexttwoTitle;
@BindView(R.id.recycler_two_view)
RecyclerView recyclerTwoView;
@BindView(R.id.text_two_prise)
TextView textTwoPrise;
@BindView(R.id.circle_img_prise)
ImageView circleImgPrise;
public ItemTwoViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
}
}
创建第一个条目的adapter
public class MyOneItmeAdapter extends RecyclerView.Adapter<MyOneItmeAdapter.ViewHolder> {
private Context context;
private List<CircleBean.ResultBean> circleBeanResult;
public MyOneItmeAdapter(Context context, List<CircleBean.ResultBean> circleBeanResult) {
this.context = context;
this.circleBeanResult = circleBeanResult;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(context).inflate(R.layout.one_itme_layout, viewGroup, false);
ViewHolder holder = new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
Glide.with(context).load(circleBeanResult.get(i).getImage()).into(viewHolder.oneImg1);
Glide.with(context).load(circleBeanResult.get(i).getImage()).into(viewHolder.oneImg2);
}
@Override
public int getItemCount() {
return circleBeanResult.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.one_img1)
ImageView oneImg1;
@BindView(R.id.one_img2)
ImageView oneImg2;
public ViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
}
}
创建第二个条目的adapter
public class MyTwoItmeAdapter extends RecyclerView.Adapter<MyTwoItmeAdapter.ViewHolder> {
private Context context;
private List<CircleBean.ResultBean> circleBeanResult;
public MyTwoItmeAdapter(Context context, List<CircleBean.ResultBean> circleBeanResult) {
this.context = context;
this.circleBeanResult = circleBeanResult;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(context).inflate(R.layout.two_itme_layout, viewGroup, false);
ViewHolder holder = new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
//设置图片圆角角度
RoundedCorners roundedCorners= new RoundedCorners(20);
//通过RequestOptions扩展功能,override:采样率,因为ImageView就这么大,可以压缩图片,降低内存消耗
RequestOptions options=RequestOptions.bitmapTransform(roundedCorners).override(300, 300);
Glide.with(context).load(circleBeanResult.get(i+1).getImage()).apply(options).into(viewHolder.twoImg1);
Glide.with(context).load(circleBeanResult.get(i+1).getImage()).apply(options).into(viewHolder.twoImg2);
Glide.with(context).load(circleBeanResult.get(i+1).getImage()).apply(options).into(viewHolder.twoImg3);
}
@Override
public int getItemCount() {
return circleBeanResult.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.two_img1)
ImageView twoImg1;
@BindView(R.id.two_img2)
ImageView twoImg2;
@BindView(R.id.two_img3)
ImageView twoImg3;
public ViewHolder(@NonNull View itemView) {
super(itemView);
ButterKnife.bind(this,itemView);
}
}
}