首先我这一块我用的是MVP模式写的这个分类,简单说一下它的布局,就两块,左面一块就是RecyclerView,右面一块是二级列表嵌套RecyclerView,请求的时候
我用的Retrofit+Rxjava+OkHttp的结合请求的数据,废话不多说
直接甩代码,代码有点多,慢慢看。
先展示一下效果
首先看一下接口
public interface Inters {
/**
* 左面接口
*/
@GET("product/getCatagory")
Observable<Zean> Zuo();
/**
* 右面接口
*/
@GET("product/getProductCatagory")
Observable<Yean> You(@Query("cid") int cid);
}
Retrofit+Rxjava+OkHttp的结合
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import retrofit2.adapter.rxjava.RxJavaCallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;
/**
* Retrofit+Rxjava+OkHttp封装,单例
*/
public class RetrofitUnitl {
private Retrofit mRetrofit;
private String baseUrl;
OkHttpClient client;
private static RetrofitUnitl mRetrofitManager;
private RetrofitUnitl(String baseUrl,OkHttpClient client){
this.baseUrl=baseUrl;
this.client=client;
initRetrofit();
}
public static synchronized RetrofitUnitl getInstance(String baseUrl,OkHttpClient client){
if (mRetrofitManager == null){
mRetrofitManager = new RetrofitUnitl(baseUrl,client);
}
return mRetrofitManager;
}
private void initRetrofit() {
mRetrofit = new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.client(client)
.build();
}
public <T> T setCreate(Class<T> reqServer) {
return mRetrofit.create(reqServer);
}
}
分类的布局
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:context="com.xjq.xinjiaqi20171208.MainActivity">
<android.support.v7.widget.RecyclerView
android:id="@+id/zrv"
android:layout_width="130dp"
android:layout_height="match_parent" />
<ExpandableListView
android:id="@+id/yev"
android:layout_width="match_parent"
android:layout_height="match_parent"></ExpandableListView>
</LinearLayout>