HomeFragment.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. package com.example.zhpan.circleviewpager.fragment;
  2. import android.os.Bundle;
  3. import android.view.LayoutInflater;
  4. import android.view.View;
  5. import android.widget.RelativeLayout;
  6. import android.widget.TextView;
  7. import android.widget.Toast;
  8. import androidx.recyclerview.widget.DividerItemDecoration;
  9. import androidx.recyclerview.widget.LinearLayoutManager;
  10. import com.example.zhpan.circleviewpager.R;
  11. import com.example.zhpan.circleviewpager.adapter.ArticleAdapter;
  12. import com.example.zhpan.circleviewpager.bean.ArticleWrapper;
  13. import com.example.zhpan.circleviewpager.bean.DataWrapper;
  14. import com.example.zhpan.circleviewpager.net.BannerData;
  15. import com.example.zhpan.circleviewpager.net.RetrofitGnerator;
  16. import com.example.zhpan.circleviewpager.recyclerview.ui.CustomRecyclerView;
  17. import com.example.zhpan.circleviewpager.viewholder.NetViewHolder;
  18. import com.scwang.smartrefresh.header.MaterialHeader;
  19. import com.scwang.smartrefresh.layout.SmartRefreshLayout;
  20. import com.zhpan.bannerview.BannerViewPager;
  21. import com.zhpan.idea.net.common.ResponseObserver;
  22. import com.zhpan.idea.utils.LogUtils;
  23. import com.zhpan.idea.utils.RxUtil;
  24. import com.zhpan.indicator.IndicatorView;
  25. import com.zhpan.indicator.enums.IndicatorSlideMode;
  26. import org.jetbrains.annotations.NotNull;
  27. import org.jetbrains.annotations.Nullable;
  28. import java.util.ArrayList;
  29. import java.util.List;
  30. import io.reactivex.Observable;
  31. import io.reactivex.schedulers.Schedulers;
  32. /**
  33. * Created by zhpan on 2018/7/24.
  34. */
  35. public class HomeFragment extends BaseFragment {
  36. @Override
  37. protected int getLayout() {
  38. return 0;
  39. }
  40. @Override
  41. protected void initTitle() {
  42. }
  43. @Override
  44. protected void initView(@Nullable Bundle savedInstanceState, @NotNull View view) {
  45. }
  46. // private BannerViewPager<BannerData, NetViewHolder> mViewPager;
  47. // private CustomRecyclerView recyclerView;
  48. // private ArticleAdapter articleAdapter;
  49. // private SmartRefreshLayout mSmartRefreshLayout;
  50. // private IndicatorView mIndicatorView;
  51. // private TextView mTvTitle;
  52. // private RelativeLayout mRlIndicator;
  53. //
  54. // @Override
  55. // protected int getLayout() {
  56. // return R.layout.fragment_home;
  57. // }
  58. //
  59. // @Override
  60. // protected void initTitle() {
  61. //
  62. // }
  63. //
  64. // @Override
  65. // public void onPause() {
  66. // super.onPause();
  67. // LogUtils.e("HomeFragment", "onPause");
  68. // if (mViewPager != null) {
  69. // mViewPager.stopLoop();
  70. // }
  71. // }
  72. //
  73. // @Override
  74. // public void onResume() {
  75. // super.onResume();
  76. // LogUtils.e("HomeFragment", "onResume");
  77. // if (mViewPager != null) {
  78. // mViewPager.startLoop();
  79. // }
  80. // }
  81. //
  82. // @Override
  83. // protected void initView(Bundle savedInstanceState, View view) {
  84. // initRecyclerView(view);
  85. // initRefreshLayout(view);
  86. // initBanner();
  87. // fetchData(true);
  88. // }
  89. //
  90. public static HomeFragment getInstance() {
  91. return new HomeFragment();
  92. }
  93. //
  94. // private void initRecyclerView(View view) {
  95. // recyclerView = view.findViewById(R.id.recycler_view);
  96. // recyclerView.setLayoutManager(new LinearLayoutManager(getMContext()));
  97. // recyclerView.addHeadView(getHeaderView());
  98. // recyclerView.addItemDecoration(new DividerItemDecoration(getMContext(),
  99. // DividerItemDecoration.VERTICAL));
  100. // articleAdapter = new ArticleAdapter(getMContext(), new ArrayList<>());
  101. // recyclerView.setAdapter(articleAdapter);
  102. // }
  103. //
  104. // private void initRefreshLayout(View view) {
  105. // mSmartRefreshLayout = view.findViewById(R.id.refresh_layout);
  106. // mSmartRefreshLayout.setRefreshHeader(new MaterialHeader(getMContext()));
  107. // mSmartRefreshLayout.setOnRefreshListener(refreshLayout -> fetchData(false));
  108. // }
  109. //
  110. // private void fetchData(boolean showLoading) {
  111. // Observable.zip(getBannerObserver(), getArticleObserver(), (bannerData, articles) ->
  112. // new DataWrapper(articles.getDatas(), bannerData))
  113. // .compose(RxUtil.rxSchedulerHelper(this, showLoading))
  114. // .subscribe(new ResponseObserver<DataWrapper>() {
  115. // @Override
  116. // public void onSuccess(DataWrapper response) {
  117. // mViewPager.create(response.getDataBeanList());
  118. // articleAdapter.setData(response.getArticleList());
  119. // if (response.getDataBeanList().size() > 0) {
  120. // mTvTitle.setText(response.getDataBeanList().get(0).getTitle());
  121. // mRlIndicator.setVisibility(View.VISIBLE);
  122. // }
  123. // }
  124. //
  125. // @Override
  126. // public void onFinish() {
  127. // super.onFinish();
  128. // mSmartRefreshLayout.finishRefresh();
  129. // }
  130. // });
  131. // }
  132. //
  133. // private Observable<ArticleWrapper> getArticleObserver() {
  134. // return RetrofitGnerator.getApiSerVice().getArticle().subscribeOn(Schedulers.io());
  135. // }
  136. //
  137. // private Observable<List<BannerData>> getBannerObserver() {
  138. // return RetrofitGnerator.getApiSerVice().getBannerData().subscribeOn(Schedulers.io());
  139. // }
  140. //
  141. // private void initBanner() {
  142. // mViewPager
  143. // .setAutoPlay(true)
  144. // .setCanLoop(true)
  145. // .setIndicatorSlideMode(IndicatorSlideMode.WORM)
  146. // .setInterval(5000)
  147. // .setScrollDuration(1200)
  148. // .setIndicatorSliderRadius(getResources().getDimensionPixelSize(R.dimen.dp_3))
  149. // .setIndicatorView(mIndicatorView)// 这里为了设置标题故用了自定义Indicator,如果无需标题则没必要添加此行代码
  150. // .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
  151. // .setHolderCreator(NetViewHolder::new)
  152. // .setOnPageChangeListener(new OnPageChangeListenerAdapter() {
  153. // @Override
  154. // public void onPageSelected(int position) {
  155. // super.onPageSelected(position);
  156. // BannerData bannerData = mViewPager.getList().get(position);
  157. // mTvTitle.setText(bannerData.getTitle());
  158. // }
  159. // })
  160. // .setOnPageClickListener(this::onPageClicked);
  161. // }
  162. //
  163. // private void onPageClicked(int position) {
  164. // BannerData bannerData = mViewPager.getList().get(position);
  165. // Toast.makeText(getMContext(), "position:" + position + " " + bannerData.getTitle() + "currentItem:" + mViewPager.getCurrentItem(), Toast.LENGTH_SHORT).show();
  166. // }
  167. //
  168. // private View getHeaderView() {
  169. // View view = LayoutInflater.from(getMContext()).inflate(R.layout.item_header_view, recyclerView, false);
  170. // mRlIndicator = view.findViewById(R.id.layout_indicator);
  171. // mViewPager = view.findViewById(R.id.banner_view);
  172. // mTvTitle = view.findViewById(R.id.tv_title);
  173. // mIndicatorView = view.findViewById(R.id.indicator_view);
  174. // return view;
  175. // }
  176. }