package com.tejia.lijin.app.ui.sellwellcommodity;
|
|
import android.content.Intent;
|
import android.graphics.Color;
|
import android.graphics.drawable.AnimationDrawable;
|
import android.os.Bundle;
|
import android.provider.Settings;
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.SimpleItemAnimator;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.RelativeLayout;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.wpc.library.RetainViewFragment;
|
import com.wpc.library.util.NetUtils;
|
import com.wpc.library.util.common.DimenUtils;
|
import com.tejia.lijin.app.BasicTextHttpResponseHandler;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.ShoppingApi;
|
import com.tejia.lijin.app.entity.TaoBaoGoodsBrief;
|
import com.tejia.lijin.app.ui.recommend.SearchResultAdapter;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 今日热销
|
*/
|
public class TodayChlidFragment extends RetainViewFragment implements View.OnClickListener {
|
private SwipeRefreshLayout realtimechild_sf;
|
private RecyclerView realtimechild_rv;//RecyclerView
|
|
private Bundle mBundle;//获取Activity传递过来的参数
|
private SearchResultAdapter adapter;//淘宝商品适配
|
private List<TaoBaoGoodsBrief> mList = new ArrayList<>();
|
private View bottom;
|
private TextView tv_loading;
|
private ImageView iv_loading;
|
|
private int page = 1;
|
private boolean isLoad = true;
|
private int count = 1;
|
private LinearLayout ll_no_net, ll_no_data, ll_request_failture;
|
private ImageView ll_no_data_rf;
|
private RelativeLayout ff_loading_no_data;//无数据
|
|
@Override
|
public int getContentResource() {
|
return R.layout.fragment_realtimechild;
|
}
|
|
@Override
|
public void onCreateView(View contentView, Bundle savedInstanceState) {
|
realtimechild_sf = contentView.findViewById(R.id.realtimechild_sf);
|
realtimechild_rv = contentView.findViewById(R.id.realtimechild_rv);
|
//获取Activity传递过来的参数
|
mBundle = getArguments();
|
|
realtimechild_rv.setLayoutManager(new LinearLayoutManager(getContext()));
|
realtimechild_rv.setBackgroundColor(getResources().getColor(R.color.register_gray));
|
adapter = new SearchResultAdapter(getContext(), mList, null, "热销榜单_今日");
|
adapter.isHorizontal = true;
|
adapter.isFirst = true;
|
realtimechild_rv.setAdapter(adapter);
|
View top_view = LayoutInflater.from(getContext()).inflate(R.layout.item_ware, null);
|
TextView tv_test = top_view.findViewById(R.id.tv_test);
|
top_view.setBackgroundColor(Color.parseColor("#f3f3f3"));
|
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) tv_test.getLayoutParams();
|
//获取当前控件的布局对象
|
params.height = DimenUtils.dip2px(getContext(), 10);//设置当前控件布局的高度
|
params.setMargins(0, 0, 0, 0);
|
tv_test.setLayoutParams(params);//将设置好的布局参数应用到控件中
|
|
bottom = LayoutInflater.from(getContext()).inflate(R.layout.item_recyclerview_bottom2, null);
|
tv_loading = bottom.findViewById(R.id.tv_loading2);
|
iv_loading = bottom.findViewById(R.id.iv_loading2);
|
ff_loading_no_data = bottom.findViewById(R.id.ff_loading_no_data2);
|
|
AnimationDrawable animationDrawable = (AnimationDrawable) getResources().getDrawable(R.drawable.anim_list_loading);
|
iv_loading.setImageDrawable(animationDrawable);
|
animationDrawable.start();
|
bottom.setVisibility(View.GONE);
|
adapter.addHeaderView(top_view);
|
adapter.addFooterView(bottom);
|
|
//无数据 无网络 网络异常
|
ll_no_net = contentView.findViewById(R.id.ll_no_net);
|
ll_no_data = contentView.findViewById(R.id.ll_no_data);
|
ll_request_failture = contentView.findViewById(R.id.ll_request_failture);
|
contentView.findViewById(R.id.tv_net_setting).setOnClickListener(this);
|
contentView.findViewById(R.id.tv_refresh).setOnClickListener(this);
|
ll_no_data_rf = contentView.findViewById(R.id.iv_refresh);
|
ll_no_data_rf.setOnClickListener(this);
|
|
|
realtimechild_sf.setRefreshing(true);
|
realtimechild_sf.setColorSchemeColors(getResources().getColor(R.color.theme));
|
((SimpleItemAnimator) realtimechild_rv.getItemAnimator()).setSupportsChangeAnimations(false); //取消RecyclerView的动画效果
|
realtimechild_sf.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
@Override
|
public void onRefresh() {
|
page = 1;
|
getGoodsList();
|
}
|
});
|
realtimechild_rv.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
@Override
|
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
super.onScrollStateChanged(recyclerView, newState);
|
LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();
|
int first = manager.findFirstVisibleItemPosition();
|
int last = manager.findLastVisibleItemPosition();
|
int total = manager.getItemCount();
|
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
|
if (last == total - 1 && mList.size() < count && isLoad) {
|
page++;
|
isLoad = false;
|
tv_loading.setText(getResources().getString(R.string.loading_more_text));
|
iv_loading.setVisibility(View.VISIBLE);
|
getGoodsList();
|
}
|
}
|
}
|
});
|
|
getGoodsList();
|
}
|
|
private void getGoodsList() {
|
ShoppingApi.getSellshopList(getContext(), page + "", "3", mBundle.getString("id"), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onStart() {
|
super.onStart();
|
if (page > 1) {
|
bottom.setVisibility(View.VISIBLE);
|
} else {
|
if (page == 1) {
|
bottom.setVisibility(View.VISIBLE);
|
iv_loading.setVisibility(View.GONE);
|
tv_loading.setText(" ");
|
} else {
|
bottom.setVisibility(View.GONE);
|
}
|
}
|
}
|
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<TaoBaoGoodsBrief> list = gson.fromJson(jsonObject.optJSONObject("data").
|
optJSONArray("list").toString(), new TypeToken<List<TaoBaoGoodsBrief>>() {
|
}.getType());
|
|
// List<JSONObject> list = new ArrayList<>();
|
// for (int i = 0; i < jsonObject.getJSONObject("data").optJSONArray("list").length(); i++) {
|
// list.add((JSONObject) jsonObject.getJSONObject("data").optJSONArray("list").get(i));
|
// }
|
if (page == 1 && mList.size() > 0)//第一页的时候表示刷新 需要情况list
|
mList.clear();
|
if (list.size() > 0)
|
mList.addAll(list);
|
|
|
count = Integer.parseInt(jsonObject.optJSONObject("data").optString("count"));
|
isLoad = true;
|
if (page == 1 && mList.size() > 0)//第一页的时候表示刷新 需要情况list
|
mList.clear();
|
if (!list.toString().equals("[]")) {//判断是否数据为空
|
mList.addAll(list);
|
}
|
if (mList.size() >= count && mList.size() > 5) { //下拉数据请求完 到底了
|
bottom.setVisibility(View.VISIBLE);
|
iv_loading.setVisibility(View.GONE);
|
tv_loading.setText(getResources().getString(R.string.list_no_more));
|
} else { //下拉还有数据时
|
if (bottom.getVisibility() == View.VISIBLE) {
|
bottom.setVisibility(View.GONE);
|
}
|
}
|
if (mList.size() == 0) { //没有数据情况
|
bottom.setVisibility(View.VISIBLE);
|
ff_loading_no_data.setVisibility(View.VISIBLE); //展示 无数据页
|
} else {
|
ff_loading_no_data.setVisibility(View.GONE); //隐藏无数据页
|
}
|
|
adapter.notifyItemRangeChanged(0, mList.size()); //进行列表全部刷新
|
// if (page == 1) { //第一页的情况下 加载店铺足迹 /or 店铺数据
|
// if (!mBundle.getString("id").equals("0")) {// 不是精选情况 精选在 onResume生命周期刷新
|
// getCateGorySecond(jsonObject.getJSONObject("data").optJSONArray("listShop"));//設置 店鋪数据
|
// }
|
// }
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
realtimechild_sf.setRefreshing(false);
|
bottom.setVisibility(View.GONE);
|
if (mList != null && mList.size() == 0) {
|
if (NetUtils.getNetworkState(getContext()).equalsIgnoreCase(NetUtils.NETWORK_NONE)) {
|
requestState(3);
|
} else {
|
requestState(2);
|
}
|
} else {
|
if (NetUtils.getNetworkState(getContext()).equalsIgnoreCase(NetUtils.NETWORK_NONE)) {
|
Toast.makeText(getContext(), "网络未连接,请检测网络设置", Toast.LENGTH_SHORT).show();
|
} else {
|
Toast.makeText(bottom.getContext(), "网络连接异常,请检测网络设置", Toast.LENGTH_SHORT).show();
|
}
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
realtimechild_sf.setRefreshing(false);
|
}
|
});
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.tv_net_setting:
|
startActivity(new Intent(Settings.ACTION_SETTINGS));
|
break;
|
case R.id.tv_refresh:
|
startActivity(new Intent(Settings.ACTION_SETTINGS));
|
break;
|
case R.id.iv_refresh:
|
// fragment_brand_fragment_sf.setRefreshing(false);
|
if (!realtimechild_sf.isRefreshing()) {
|
realtimechild_sf.setRefreshing(true);
|
}
|
Toast.makeText(getContext(), "" + realtimechild_sf.isRefreshing(), Toast.LENGTH_LONG).show();
|
break;
|
}
|
}
|
|
/**
|
* 请求状态 0 数据正常展示;1 返回数据为空;2 网络请求失败;3 没有连接网络
|
*
|
* @param state
|
*/
|
private void requestState(int state) {
|
// fragment_brand_fragment_sf.setVisibility(state == 0 ? View.VISIBLE : View.GONE);
|
// fragment_brand_fragment_rv.setVisibility(state == 0 ? View.VISIBLE : View.GONE);
|
ll_no_data_rf.setVisibility(state == 1 ? View.VISIBLE : View.GONE);
|
ll_no_data.setVisibility(state == 1 ? View.VISIBLE : View.GONE);
|
ll_request_failture.setVisibility(state == 2 ? View.VISIBLE : View.GONE);
|
ll_no_net.setVisibility(state == 3 ? View.VISIBLE : View.GONE);
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
realtimechild_sf.setRefreshing(false);
|
realtimechild_sf.destroyDrawingCache();
|
realtimechild_sf.clearAnimation();
|
// realtimechild_rv.removeOnScrollListener(mOnScrollListener);
|
}
|
|
@Override
|
public void onDestroy() {
|
super.onDestroy();
|
// mBundle = null;//获取Activity传递过来的参数
|
// mList = null;
|
// adapter = null;//淘宝商品适配
|
// page = 0;
|
// count = 0;
|
//
|
// bottom = null;
|
}
|
}
|