<uses-permission android:name="android.permission.INTERNET" />
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1' compile 'com.squareup.okhttp3:okhttp:3.9.0' compile 'com.squareup.okio:okio:1.13.0' compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.2' compile 'com.google.code.gson:gson:2.2.4'
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.facebook.fresco:fresco:0.12.0'
compile 'com.android.support:recyclerview-v7:25.3.1'
compile 'com.squareup.okhttp3:okhttp:3.1.2'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
compile 'com.jakewharton:butterknife:8.8.1'
compile 'com.youth.banner:banner:+'
compile 'com.github.bumptech.glide:glide:3.6.1'
model:
public interface getModel {
public void getData(Finish finishs);
}
--------------------------------------------
public class getModelImpl implements getModel {
@Override
public void getData(final Finish finish) {
ServiceAPI api= RetrofitHelper.getAPI();
api.ben().enqueue(new Callback<MyBean>() {
@Override
public void onResponse(Call<MyBean> call, Response<MyBean> response) {
finish.onfinish(response.body());
}
@Override
public void onFailure(Call<MyBean> call, Throwable t) {
}
});
}
}
presenter:
public interface getPresenter {
public void guanlian();
}
--------------------------------------------
public class getPresenterImpl implements getPresenter,Finish {
private getModel model;
getView view;
public getPresenterImpl(getView view){
this.view=view;
model=new getModelImpl();
}
@Override
public void guanlian() {
model.getData(this);
}
@Override
public void onfinish(MyBean bean) {
view.showData(bean);
}
}
adapter
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private MyBean bean;
public MyAdapter(Context context, MyBean bean) {
this.context = context;
this.bean = bean;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == 0) {
View v = View.inflate(context, R.layout.itembanner, null);
BannerViewHolder holder = new BannerViewHolder(v);
return holder;
} else if (viewType == 1) {
View v = View.inflate(context, R.layout.item_two, null);
TwoViewHolder holder = new TwoViewHolder(v);
return holder;
} else if (viewType == 2) {
View v = View.inflate(context, R.layout.itemthree, null);
ViewHolder holder = new ViewHolder(v);
return holder;
}
return null;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (holder instanceof BannerViewHolder){
BannerViewHolder viewholder = (BannerViewHolder) holder;
List<String> bannerList = new ArrayList<>();
for (int i = 0; i < bean.getData().getAd1().size(); i++) {
bannerList.add(bean.getData().getAd1().get(i).getImage());
}
viewholder.itemBanner.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
});
viewholder.itemBanner.setImages(bannerList);
viewholder.itemBanner.setDelayTime(3000);
viewholder.itemBanner.setBannerAnimation(Transformer.DepthPage).isAutoPlay(true);
viewholder.itemBanner.start();
} else if (holder instanceof TwoViewHolder) {
TwoViewHolder viewholder2 = (TwoViewHolder) holder;
viewholder2.recyclerTwo.setLayoutManager(new GridLayoutManager(context,4));
MyGridAdapter adapter=new MyGridAdapter(context,bean.getData().getAd5());
viewholder2.recyclerTwo.setAdapter(adapter);
} else if (holder instanceof ViewHolder) {
ViewHolder viewholder3 = (ViewHolder) holder;
viewholder3.recyclerThree.setAdapter(new MyIndexAdapter(context,bean));
viewholder3.recyclerThree.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL));
}
}
@Override
public int getItemViewType(int position) {
if (position == 0) {
return 0;
} else if (position == 1) {
return 1;
} else if (position == 2) {
return 2;
}
return 3;
}
@Override
public int getItemCount() {
return 3;
}
static class BannerViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.item_banner)
Banner itemBanner;
BannerViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
}
static class TwoViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.recycler_two)
RecyclerView recyclerTwo;
TwoViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
}
static class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.recycler_three)
RecyclerView recyclerThree;
ViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
}
}
------------------------------------
public class MyGridAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private List<MyBean.DataBean.Ad5Bean> list;
public MyGridAdapter(Context context, List<MyBean.DataBean.Ad5Bean> list) {
this.context = context;
this.list = list;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = View.inflate(context, R.layout.item_grid, null);
ViewHolder holder=new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ViewHolder viewHolder= (ViewHolder) holder;
viewHolder.tv.setText(list.get(position).getTitle());
viewHolder.simpl.setImageURI(list.get(position).getImage());
}
@Override
public int getItemCount() {
return list.size();
}
static class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.simpl_grid)
SimpleDraweeView simpl;
@BindView(R.id.tv)
TextView tv;
ViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
}
}
---------------------------------------
public class MyIndexAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context context;
MyBean list;
public MyIndexAdapter(Context context, MyBean list) {
this.context = context;
this.list = list;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = View.inflate(context, R.layout.item_index, null);
ViewHolder holder=new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ViewHolder viewHolder= (ViewHolder) holder;
viewHolder.tv.setText(list.getData().getSubjects().get(0).getGoodsList().get(position).getDescription());
viewHolder.simpl.setImageURI(list.getData().getSubjects().get(0).getGoodsList().get(position).getGoodsImage());
}
@Override
public int getItemCount() {
return list.getData().getSubjects().get(0).getGoodsList().size();
}
static class ViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.simpl)
SimpleDraweeView simpl;
@BindView(R.id.tv)
TextView tv;
ViewHolder(View view) {
super(view);
ButterKnife.bind(this, view);
}
}
}
--------------------------------------
view:
public interface getView {
void showData(MyBean bean);
}
---------------------------------------
mainactivity:
public class MainActivity extends AppCompatActivity implements getView {
@BindView(R.id.recycler)
RecyclerView recycler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(option);
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
ButterKnife.bind(this);
recycler.setLayoutManager(new LinearLayoutManager(this));
getPresenter p=new getPresenterImpl(this);
p.guanlian();
}
@Override
public void showData(MyBean bean) {
recycler.setAdapter(new MyAdapter(MainActivity.this,bean));
}
}
------------------------------------------------------------------------
item_grid:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/simpl_grid"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_weight="1"
android:layout_marginLeft="30dp"
/>
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="40dp"
android:layout_below="@+id/simpl_grid"
/>
</RelativeLayout>
------------------------------------------
item_index:
<com.facebook.drawee.view.SimpleDraweeView
android:layout_width="150dp"
android:layout_height="150dp"
android:id="@+id/simpl"
android:layout_weight="1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv"
android:layout_weight="1"
/>
--------------------------------------
item_two
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recycler_two"
></android.support.v7.widget.RecyclerView>
--------------------------------------------
itembanner:
<com.youth.banner.Banner
android:layout_width="match_parent"
android:layout_height="150dp"
android:id="@+id/item_banner"
></com.youth.banner.Banner>
------------------
itemthree:
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/recycler_three"
></android.support.v7.widget.RecyclerView>