如何使用Android实现上拉吸顶效果
短信预约 -IT技能 免费直播动态提醒
这篇文章给大家分享的是有关如何使用Android实现上拉吸顶效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
具体内容如下
效果图
1.home_layout.xml
此布局即可实现上拉固定在顶部
<?xml version="1.0" encoding="UTF-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:rvp="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" xmlns:tl="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/ll_base" android:background="@drawable/bg_f8f8f8" > <!-- <android.support.v4.widget.SwipeRefreshLayout android:layout_width="match_parent" android:layout_height="wrap_content">--> <!--中间内容--> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <FrameLayout android:focusableInTouchMode="true" android:focusable="true" android:layout_width="match_parent" android:visibility="gone" android:layout_height="205dp"> <com.broker.liming.banner.view.BannerBgContainer android:id="@+id/banner_bg_container" android:layout_width="match_parent" android:layout_height="205dp" /> <com.broker.liming.banner.LoopLayout android:id="@+id/loop_layout" android:layout_width="match_parent" android:layout_height="120dp" android:layout_gravity="bottom" android:layout_marginTop="@dimen/lay_85" /> </FrameLayout> <android.support.design.widget.CoordinatorLayout android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="wrap_content"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" app:elevation="0dp" app:layout_behavior="com.broker.liming.widget.AppBarLayoutBehavior" > <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/main.collapsing" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <!-- android:fitsSystemWindows="true" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginEnd="64dp" app:expandedTitleMarginStart="48dp"--> <!-- <android.support.constraint.ConstraintLayout android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:scaleType="centerCrop" app:layout_collapseMode="parallax">--> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="@drawable/bg_f8f8f8" > <!--app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintBottom_toBottomOf="parent"--> <com.jcodecraeer.xrecyclerview.XRecyclerView android:id="@+id/xrv_product" android:nestedScrollingEnabled="false" android:scrollbars="none" android:visibility="visible" /> <android.support.v7.widget.RecyclerView android:id="@+id/recycler" android:layout_width="match_parent" android:layout_height="wrap_content" android:visibility="gone" android:overScrollMode="never" /> <!--<com.yi.haigou.shop.view.ShopInfoView android:id="@+id/shop_inof_view" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintTop_toTopOf="parent" /> <com.yi.haigou.shop.view.ShopAddressView android:id="@+id/shop_address_view" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent" />--> </RelativeLayout> <!-- </android.support.constraint.ConstraintLayout>--> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="@dimen/lay_60" > <!--<android.support.constraint.ConstraintLayout--> <!--android:layout_width="match_parent"--> <!--android:layout_height="match_parent">--> <!--<com.yi.shop.shop.view.ShopSearchBar--> <!--android:id="@+id/search_bar_view"--> <!--android:layout_width="match_parent"--> <!--android:layout_height="wrap_content"--> <!--android:background="@drawable/ic_shop_title"--> <!--app:layout_constraintTop_toTopOf="parent"/>--> <!--</android.support.constraint.ConstraintLayout>--> </android.support.v7.widget.Toolbar> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <!--吸顶tab--> <LinearLayout android:id="@+id/ll_tab" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:visibility="gone" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <com.broker.liming.widget.SlidingTabLayout android:id="@+id/tl_9" android:layout_width="match_parent" android:layout_height="@dimen/lay_45" android:paddingLeft="12dp" android:paddingRight="12dp" android:layout_marginTop="@dimen/lay_20" tl:tl_indicator_anim_duration="100" tl:tl_indicator_anim_enable="true" tl:tl_indicator_bounce_enable="false" tl:tl_indicator_color="@color/name_1A75FF" tl:tl_indicator_margin_left="2dp" tl:tl_indicator_margin_right="2dp" tl:tl_indicator_ tl:tl_textSelectColor="@color/white" tl:tl_textUnselectColor="@color/text_000000" tl:tl_textsize="@dimen/font_13" /> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="@dimen/lay_12" /> <!--公司信息--> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_alignParentBottom="true" android:visibility="gone" > <TextView android:id="@+id/tv_phone" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/lay_12" android:layout_marginRight="@dimen/lay_12" android:layout_marginTop="@dimen/lay_34" android:gravity="center" android:text="1569796696" android:textColor="@color/color_c7c7c7" android:textSize="@dimen/font_13" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="@dimen/font_16" android:layout_marginLeft="@dimen/lay_12" android:layout_marginRight="@dimen/lay_12" android:layout_marginTop="@dimen/lay_12" android:gravity="center"> <TextView android:id="@+id/tv_email" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/color_c7c7c7" android:textSize="@dimen/font_13" /> <ImageView android:id="@+id/iv_copy" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/lay_6" android:background="@mipmap/home_copy" /> </LinearLayout> </LinearLayout> </LinearLayout> </android.support.design.widget.CoordinatorLayout> </LinearLayout> <!-- </android.support.v4.widget.SwipeRefreshLayout>--> <!--搜索--> <RelativeLayout android:id="@+id/rl_top" android:layout_width="match_parent" android:layout_height="@dimen/lay_70" android:background="@color/transparent" android:gravity="bottom"> <RelativeLayout android:id="@+id/rl_title" android:layout_width="match_parent" android:layout_height="@dimen/lay_45" android:gravity="center_vertical" android:paddingLeft="@dimen/lay_12"> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginRight="@dimen/lay_12" android:text="日月保盒" android:textColor="@color/white" android:textSize="@dimen/font_18" android:textStyle="bold" /> <LinearLayout android:id="@+id/ll_search" android:layout_width="match_parent" android:layout_height="@dimen/lay_31" android:layout_centerVertical="true" android:layout_marginRight="@dimen/lay_57" android:layout_toRightOf="@+id/tv_title" android:background="@drawable/shape_search_product" android:gravity="center_vertical"> <ImageView android:id="@+id/iv_search" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="@dimen/lay_12" android:layout_marginRight="@dimen/lay_5" android:background="@mipmap/home_search" /> <TextView android:id="@+id/tv_search" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:ellipsize="end" android:paddingRight="@dimen/lay_12" android:singleLine="true" android:text="" android:textColor="@color/color_c7c7c7" android:textSize="@dimen/lay_14" /> </LinearLayout> <RelativeLayout android:id="@+id/rl_msg" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_alignParentRight="true" android:layout_marginEnd="@dimen/lay_12" android:gravity="center_vertical"> <ImageView android:id="@+id/iv_msg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/lay_5" android:background="@mipmap/home_message_white" /> <TextView android:id="@+id/tv_msgnum" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="11dp" android:layout_marginTop="@dimen/lay_2" android:background="@drawable/yuandianred" android:gravity="center" android:minWidth="14dp" android:paddingLeft="3dp" android:paddingRight="3dp" android:singleLine="true" android:textColor="@android:color/white" android:textSize="@dimen/font_10" android:visibility="visible" /> </RelativeLayout> </RelativeLayout> </RelativeLayout> </RelativeLayout>
2.fragment
package com.broker.liming.fragment; import android.Manifest;import android.app.Activity;import android.content.ClipData;import android.content.ClipboardManager;import android.content.Context;import android.content.Intent;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.content.res.Configuration;import android.content.res.Resources;import android.graphics.Color;import android.graphics.Point;import android.graphics.drawable.ColorDrawable;import android.os.Build;import android.os.Bundle;import android.os.Handler;import android.support.annotation.NonNull;import android.support.design.widget.AppBarLayout;import android.support.design.widget.CoordinatorLayout;import android.support.v4.app.ActivityCompat;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.app.FragmentTransaction;import android.support.v4.content.ContextCompat;import android.support.v4.view.ViewPager;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.support.v7.widget.Toolbar;import android.text.Html;import android.text.TextUtils;import android.util.DisplayMetrics;import android.util.Log;import android.util.TypedValue;import android.view.Display;import android.view.Gravity;import android.view.MotionEvent;import android.view.View;import android.view.ViewGroup;import android.view.Window;import android.view.WindowManager;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.PopupWindow;import android.widget.RelativeLayout;import android.widget.TextView;import android.widget.Toast; import com.bigkoo.convenientbanner.ConvenientBanner;import com.bigkoo.convenientbanner.holder.CBViewHolderCreator;import com.bigkoo.convenientbanner.listener.OnItemClickListener;import com.broker.liming.R;import com.broker.liming.activity.AgreementActivity;import com.broker.liming.activity.SplashActivity;import com.broker.liming.activity.WebViewActivity;import com.broker.liming.adapter.ArticleAdapter;import com.broker.liming.adapter.HomeAdapter;import com.broker.liming.api.HttpParams;import com.broker.liming.api.WebHttpParams;import com.broker.liming.application.LoadBugClass;import com.broker.liming.banner.IndicatorLocation;import com.broker.liming.banner.LoopLayout;import com.broker.liming.banner.LoopStyle;import com.broker.liming.banner.OnDefaultImageViewLoader;import com.broker.liming.banner.bean.BannerInfo;import com.broker.liming.banner.listener.OnBannerItemClickListener;import com.broker.liming.banner.view.BannerBgContainer;import com.broker.liming.base.BaseFragment;import com.broker.liming.bean.ColorInfo;import com.broker.liming.bean.CompanyBaseBean;import com.broker.liming.bean.HeadHomeBean;import com.broker.liming.bean.HomeBannerBean;import com.broker.liming.bean.HomeBean;import com.broker.liming.bean.HomeProductBean;import com.broker.liming.bean.MineBean;import com.broker.liming.bean.RecommendListBean;import com.broker.liming.bean.SettingBean;import com.broker.liming.bean.UserBean;import com.broker.liming.bean.UserInfoBean;import com.broker.liming.college.bean.ArticleClassifyListBean;import com.broker.liming.college.bean.FaXianListsBean;import com.broker.liming.college.bean.FindClassifysBean;import com.broker.liming.college.bean.KaoShiStatussBean;import com.broker.liming.constant.Constants;import com.broker.liming.dao.UserBeanDao;import com.broker.liming.editview.FunctionItem;import com.broker.liming.editview.SFUtils;import com.broker.liming.event.ChangXianLogin;import com.broker.liming.event.ELoginSuccess;import com.broker.liming.event.EventManager;import com.broker.liming.event.LongRiskEvent;import com.broker.liming.event.RefreshHomeArticleEvent;import com.broker.liming.interf.OnBottomTabReselectListener;import com.broker.liming.interfaclisetener.ArticleHomeClickLisener;import com.broker.liming.utils.AccountUtils;import com.broker.liming.utils.CommonUtils;import com.broker.liming.utils.DensityUtil;import com.broker.liming.utils.GsonUtils;import com.broker.liming.utils.LogUtil;import com.broker.liming.utils.LogUtil2;import com.broker.liming.utils.SPUtils;import com.broker.liming.utils.SobotUtils;import com.broker.liming.utils.StatusBarUtil;import com.broker.liming.utils.StringUtil;import com.broker.liming.utils.ToastUtil;import com.broker.liming.utils.UIHelper;import com.broker.liming.utils.Utils;import com.broker.liming.utils.ViewFindUtils;import com.broker.liming.viewholder.NetworkImageHolderView;import com.broker.liming.viewholder.TabViewHolder;import com.broker.liming.widget.AppBarStateChangeListener;import com.broker.liming.widget.CustomDialog;import com.broker.liming.widget.MyScrollView;import com.broker.liming.widget.OnTabSelectListener;import com.broker.liming.widget.RecyclerviewScrollLisetener;import com.broker.liming.widget.SetOnclickInterface;import com.broker.liming.widget.SlidingTabLayout;import com.broker.liming.widget.TitleBar;import com.bumptech.glide.Glide;import com.bumptech.glide.load.engine.DiskCacheStrategy;import com.bumptech.glide.load.resource.bitmap.CenterCrop;import com.bumptech.glide.load.resource.bitmap.RoundedCorners;import com.bumptech.glide.request.RequestOptions;import com.google.gson.Gson;import com.google.gson.JsonArray;import com.google.gson.JsonElement;import com.google.gson.JsonParser;import com.jcodecraeer.xrecyclerview.ProgressStyle;import com.jcodecraeer.xrecyclerview.XRecyclerView;import com.scwang.smartrefresh.layout.SmartRefreshLayout; import org.greenrobot.eventbus.Subscribe;import org.greenrobot.eventbus.ThreadMode;import org.json.JSONException; import java.util.ArrayList;import java.util.List;import java.util.Random; import lecho.lib.hellocharts.model.Line; import static com.broker.liming.constant.Constants.flag;import static com.broker.liming.utils.SystemInfoUtils.getScreenWidth;import static com.umeng.socialize.utils.ContextUtil.getPackageName; public class HomeFragment extends BaseFragment implements OnBottomTabReselectListener, OnItemClickListener, XRecyclerView.LoadingListener, OnBannerItemClickListener, RecyclerviewScrollLisetener,ArticleHomeClickLisener { public static ConvenientBanner mConvenientBanner; private List<HomeBannerBean> mHomePagePlatAdList; private HomeAdapter mHomeAdapter; private XRecyclerView mXrvProduct; private SmartRefreshLayout refreshLayout; private XRecyclerView xRecyclerView; private ImageView iv_center; private RelativeLayout rl_wallet; private RelativeLayout rl_msg; private TextView tv_msgnum; private HomeBean.PopUpEntity popUp; private TitleBar mTitleBar; private TextView tv_statusBar_slide; private BannerBgContainer container; private LoopLayout loopLayout; private int imageHeight; private RelativeLayout rl_title; private String longRiskUrl; private String longCenterUrl; private String longCenterUrl2; private String longCenterNew;//新版 private String longCenterUrl3; public static boolean canClick; public static boolean canClick2; private RelativeLayout rl_top; private ImageView iv_search; private String customerLevel; public static String flag3; public static String certifiedState; public static String flag2; private ImageView iv_contact; private int duration; public static boolean canClick3; // private MoveImage iv_contact2; private TextView tv_245; private TextView tv_247; private TextView tv_chang_commit; private EditText edit_logoin; private EditText edit_screen; private EditText edit_riyuebaohe; private TextView tv_tinker; private TextView tv_title; private LinearLayout ll_search; private ImageView iv_msg; private int position; private TextView tv_search; private ImageView ivBannerHeadBg; private int count; private boolean isInit = true; private List<String> bannerList = new ArrayList<>(); private List<ColorInfo> colorList = new ArrayList<>(); private int mDistanceY; private LinearLayoutManager layoutManager; private int y; private int height; private String localVersion; private String key; private PopupWindow popWindow; private boolean hidden2 = false; private SFUtils sfUtils; private List<FunctionItem> allData; private List<FunctionItem> selData; private ImageView iv_back_top; private String localVersionLoad; private RecyclerView recycler; private ViewPager viewpager; private SlidingTabLayout tl_9; private Toolbar toolbar; private List<String> mTitles=new ArrayList<>(); private ArrayList<Fragment> mFragments = new ArrayList<>(); // private MyPagerAdapter mAdapter; private FragmentManager fragmentManager; private View pagerview; private SlidingTabLayout tab_head; private MyScrollView scrollowview; private int[] location2; private int[] location3; private int yrecycler; private TextView tv_phone; private TextView tv_email; private ImageView iv_copy; private AppBarLayout appbar; private CoordinatorLayout main_content; private CustomDialog dialog; private boolean isFirstLay = true; private List<ArticleClassifyListBean> articleClassifyList; private LinearLayout ll_tab; private RelativeLayout ll_base; public static SettingBean settingBean; private CompanyBaseBean companyBaseBean; private MyPagerAdapter mAdapter; private boolean isRemind=false;//点文章不会到顶部其余都回到顶部 private boolean isSame=true;//是否有不同tab 判断后台增加或者减少tab刷新 否者不刷新tab方便记录点击位置 private boolean isFirstTab=true;//是否第一进入加载 第一次进入app时刷新tab 不是第一次需判断后台增加或者减少tab刷新 否者不刷新tab方便记录点击位置 private boolean isHoutai=false; private int appbarState; private boolean isOther=false; private boolean isRemindTrue=false; @Override protected int getContentView() { // 加载系统默认设置,字体不随用户设置变化 Resources res = mContext.getResources(); Configuration config = new Configuration(); config.setToDefaults(); res.updateConfiguration(config, res.getDisplayMetrics()); return R.layout.home_fragment_two; } @Override protected void initTitleBar(View view) {// mTitleBar = (TitleBar) view.findViewById(R.id.title_bar);// mTitleBar.setTitle("");// setStateBar();// mTitleBar.setTitleBarBg(android.R.color.transparent); iv_search = (ImageView) view.findViewById(R.id.iv_search); // rl_wallet = (RelativeLayout) view.findViewById(R.id.rl_wallet);// rl_wallet.setOnClickListener(new View.OnClickListener() {// @Override// public void onClick(View view) {// if (!isLogin()) {// UIHelper.showLogin(mContext);// return;// }//// UserBean query = UserBeanDao.query();// if (AccountUtils.isAuthentication(query.certifiedState)) {// UIHelper.showMyWallet(mContext);// } else {// UIHelper.showWebView(mContext, WebHttpParams.showCredentials());// }// }// }); rl_msg = (RelativeLayout) view.findViewById(R.id.rl_msg); rl_msg.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (!isLogin()) { UIHelper.showLogin(mContext); return; } UIHelper.showWebView2(mContext, WebHttpParams.showMyNews()); } }); tv_msgnum = (TextView) view.findViewById(R.id.tv_msgnum); // iv_center = (ImageView) view.findViewById(R.id.iv_center); // iv_center.setVisibility(View.VISIBLE);// Animation anim =new RotateAnimation(0f, 360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);// anim.setFillAfter(true); // 设置保持动画最后的状态// anim.setDuration(10000); // 设置动画时间// anim.setInterpolator(new LinearInterpolator()); // 设置插入器(线性匀速)// mTitleBar.startAnimation(anim); } @Override public void initView(View view) {// setFullScreen();// changeStatusBarTextColor(true);// BarUtils.setColorNoTranslucent(getActivity(), getResources().getColor(R.color.transparent));// BarUtils.setRootViewFitsSystemWindows(getActivity(), false);// //此方法上下状态栏都透明,状态栏字体颜色为黑色// BarUtils.setTranslucentForCoordinatorLayout(getActivity(),0); pagerview = view; StatusBarUtil.setTranslucentStatus(getActivity()); StatusBarUtil.setStatusBarDarkTheme(getActivity(), false); if (!EventManager.isRegistered(this)) { EventManager.register(this); } tv_tinker = (TextView) view.findViewById(R.id.tv_tinker); tv_245 = (TextView) view.findViewById(R.id.tv_245); tv_247 = (TextView) view.findViewById(R.id.tv_247); tv_chang_commit = (TextView) view.findViewById(R.id.tv_chang_commit); edit_logoin = (EditText) view.findViewById(R.id.edit_logoin); edit_screen = (EditText) view.findViewById(R.id.edit_screen); edit_riyuebaohe = (EditText) view.findViewById(R.id.edit_riyuebaohe); tv_title = (TextView) view.findViewById(R.id.tv_title); ll_search = (LinearLayout) view.findViewById(R.id.ll_search); iv_msg = (ImageView) view.findViewById(R.id.iv_msg); rl_top = (RelativeLayout) view.findViewById(R.id.rl_top); iv_contact = (ImageView) view.findViewById(R.id.iv_contact); tv_search = (TextView) view.findViewById(R.id.tv_search); iv_back_top = (ImageView) view.findViewById(R.id.iv_back_top); recycler = (RecyclerView) view.findViewById(R.id.recycler);// refreshLayout = (SmartRefreshLayout) view.findViewById(R.id.refreshLayout); viewpager = (ViewPager) view.findViewById(R.id.viewpager); tl_9 = (SlidingTabLayout) view.findViewById(R.id.tl_9); toolbar = (Toolbar) view.findViewById(R.id.toolbar); appbar = (AppBarLayout) view.findViewById(R.id.appbar);// tab_head=(SlidingTabLayout)view.findViewById(R.id.tab_head);// scrollowview=(MyScrollView) view.findViewById(R.id.scrollowview); tv_phone = (TextView) view.findViewById(R.id.tv_phone); tv_email = (TextView) view.findViewById(R.id.tv_email); iv_copy = (ImageView) view.findViewById(R.id.iv_copy); main_content = (CoordinatorLayout) view.findViewById(R.id.main_content); ll_tab = (LinearLayout) view.findViewById(R.id.ll_tab); ll_base = (RelativeLayout) view.findViewById(R.id.ll_base); edit_riyuebaohe.setText(flag + ""); tv_title.setTextColor(mContext.getResources().getColor(R.color.white)); ll_search.setBackground(mContext.getResources().getDrawable(R.drawable.yuanjiao24whire)); iv_msg.setBackground(mContext.getResources().getDrawable(R.mipmap.home_message_white)); rl_top.setBackgroundColor(Color.argb((int) 0, 255, 255, 255));//AGB由相关工具获得,或者美工提供 ArticleHomeFragment.setScrollListener(this); ArticleHomeFragment.setArticleListener(this); Constants.isHoutai=false; mAdapter = new MyPagerAdapter(getActivity().getSupportFragmentManager()); mXrvProduct = (XRecyclerView) view.findViewById(R.id.xrv_product); mXrvProduct.setLoadingMoreEnabled(false); mXrvProduct.setPullRefreshEnabled(true); mXrvProduct.setLoadingListener(this); mXrvProduct.setArrowImageView(R.mipmap.iconfont_downgrey); mXrvProduct.setRefreshProgressStyle(ProgressStyle.SysProgress); mXrvProduct.setNestedScrollingEnabled(true); final View headerView = mInflater.inflate(R.layout.fragment_home_banner, (ViewGroup) view.findViewById(android.R.id.content), false); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.gravity = Gravity.CENTER_HORIZONTAL; headerView.setLayoutParams(layoutParams); container = (BannerBgContainer) headerView.findViewById(R.id.banner_bg_container); loopLayout = (LoopLayout) headerView.findViewById(R.id.loop_layout); //状态栏高度 int statusBarHeight = 0; int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { statusBarHeight = getResources().getDimensionPixelSize(resourceId); } //屏幕高度 DisplayMetrics dm = mContext.getApplicationContext().getResources().getDisplayMetrics(); final float scale = dm.density; int i = (int) (54 * scale + 0.5f) + DensityUtil.dp2px(100); // //获取当前控件的布局对象 ViewGroup.LayoutParams params = (ViewGroup.LayoutParams) container.getLayoutParams(); params.width = getScreenWidth();//设置当前控件布局的宽度 params.height = getScreenWidth() * 1 / 2;//设置当前控件布局的高度 container.setLayoutParams(params);//将设置好的布局参数应用到控件中 layoutManager = new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false); mXrvProduct.setLayoutManager(layoutManager); mXrvProduct.addHeaderView(headerView); mHomeAdapter = new HomeAdapter(mContext, getActivity().getSupportFragmentManager(), getActivity(), dm.heightPixels - statusBarHeight - i + DensityUtil.dip2px(mContext, 50)); mXrvProduct.setAdapter(mHomeAdapter); // 设置轮播图属性 loopLayout.setLoop_ms(4000);//轮播的速度(毫秒) loopLayout.setLoop_duration(400);//滑动的速率(毫秒) loopLayout.setScaleAnimation(false);// 设置是否需要动画 loopLayout.setLoop_style(LoopStyle.Empty);//轮播的样式-默认empty loopLayout.setIndicatorLocation(IndicatorLocation.Center);//指示器位置-中Center loopLayout.initializeData(mContext); // 设置监听 loopLayout.setOnLoadImageViewListener(new OnDefaultImageViewLoader() { @Override public void onLoadImageView(ImageView view, Object object, int point) { Glide.with(mContext) .load(object) .apply(new RequestOptions().transforms(new CenterCrop(), new RoundedCorners(DensityUtil.dp2px(12)))) .into(view); LogUtil2.log("position--" + point + ""); } }); loopLayout.setOnBannerItemClickListener(this); setScroll(); RequestOptions options = new RequestOptions().diskCacheStrategy(DiskCacheStrategy.RESOURCE);//只缓存最终的图片 //!isDestroy(getActivity() if (getActivity() != null) { Glide.with(getActivity()).load(R.mipmap.jingzhi).apply(options).into(iv_contact); } iv_contact.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (!AccountUtils.isLogin()) { UIHelper.showLogin(mContext); return; } SobotUtils.startSobot(getActivity()); } }); if (Build.VERSION.SDK_INT > Build.VERSION_CODES.P) { RelativeLayout.LayoutParams layoutParams2 = (RelativeLayout.LayoutParams) rl_top.getLayoutParams(); layoutParams2.height = dip2px(getActivity(), 80); rl_top.setLayoutParams(layoutParams2); } else { RelativeLayout.LayoutParams layoutParams2 = (RelativeLayout.LayoutParams) rl_top.getLayoutParams(); layoutParams2.height = dip2px(getActivity(), 70); rl_top.setLayoutParams(layoutParams2); } imageHeight = dip2px(getActivity(), 200); rl_title = (RelativeLayout) view.findViewById(R.id.rl_title); initListeners(); } public void setScroll() { main_content.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: Log.i("滚动高度--tt", "按下"); if (getActivity() != null) { Glide.with(getActivity()).load(R.mipmap.huadong2).into(iv_contact); new Handler().postDelayed(new Runnable() { @Override public void run() { Glide.with(getActivity()).load(R.mipmap.jingzhi).into(iv_contact); } }, 1500); } break; case MotionEvent.ACTION_MOVE: Log.i("滚动高度--tt", "移动"); if (getActivity() != null) { Glide.with(getActivity()).load(R.mipmap.huadong).into(iv_contact); } break; case MotionEvent.ACTION_UP: Log.i("滚动高度--tt", "抬起"); break; } return false; } }); appbar.addOnOffsetChangedListener(new AppBarStateChangeListener() { @Override public void onStateChanged(AppBarLayout appBarLayout, State state) { if (state == State.EXPANDED) { Log.i("滚动高度--", "展开"); } else if (state == State.COLLAPSED) { Log.i("滚动高度--", "折叠"); setpopLoad(); } else { Log.i("滚动高度--", "中间"); } } }); appbar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { @Override public void onOffsetChanged(AppBarLayout appBarLayout, int i) { height = dip2px(mContext, 170); y = Math.abs(i); int alpha = 255 * y / (height); if (alpha > 255) { alpha = 255; } if (alpha < 5) { alpha = 0; } LogUtil2.log("滑动高度--off" + y + "--" + height + "--"); if (y <= height) { tv_title.setTextColor(mContext.getResources().getColor(R.color.white)); ll_search.setBackground(mContext.getResources().getDrawable(R.drawable.yuanjiao24whire)); iv_msg.setBackground(mContext.getResources().getDrawable(R.mipmap.home_message_white)); rl_top.setBackgroundColor(Color.argb((int) 0, 255, 255, 255));//AGB由相关工具获得,或者美工提供 StatusBarUtil.setStatusBarDarkTheme(getActivity(), false); } else if (y > height && y < height * 1.5) { rl_top.setBackgroundColor(mContext.getResources().getColor(R.color.white)); tv_title.setTextColor(mContext.getResources().getColor(R.color.text_000000)); ll_search.setBackground(mContext.getResources().getDrawable(R.drawable.shape_search_product)); iv_msg.setBackground(mContext.getResources().getDrawable(R.mipmap.home_message_black)); rl_top.setBackgroundColor(mContext.getResources().getColor(R.color.white)); rl_top.setBackgroundColor(Color.argb((int) 127, 255, 255, 255)); StatusBarUtil.setStatusBarDarkTheme(getActivity(), true); } else if (y > height * 1.5) { rl_top.setBackgroundColor(mContext.getResources().getColor(R.color.white)); tv_title.setTextColor(mContext.getResources().getColor(R.color.text_000000)); ll_search.setBackground(mContext.getResources().getDrawable(R.drawable.shape_search_product)); iv_msg.setBackground(mContext.getResources().getDrawable(R.mipmap.home_message_black)); rl_top.setBackgroundColor(Color.argb((int) 255, 255, 255, 255)); StatusBarUtil.setStatusBarDarkTheme(getActivity(), true); } } }); mXrvProduct.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager(); //获取当前可见条目得索引 int firstVisibleItemPosition = manager.findFirstVisibleItemPosition(); int lastVisibleItemPosition = manager.findLastCompletelyVisibleItemPosition(); //获取当前可见条目得itemView View firstView = manager.findViewByPosition(firstVisibleItemPosition); //获取当前可见条目得itemView得高度 height = firstView.getHeight(); //获取当前可见条目得偏移量 y = (firstVisibleItemPosition) * height - firstView.getTop(); int alpha = 255 * y / (height); if (alpha > 255) { alpha = 255; } if (alpha < 5) { alpha = 0; } float scale = (float) dy / height; float alphat = (255 * scale); LogUtil2.log("滑动高度--" + y + "--" + height + "--"); if (y == height) { tv_title.setTextColor(mContext.getResources().getColor(R.color.white)); ll_search.setBackground(mContext.getResources().getDrawable(R.drawable.yuanjiao24whire)); iv_msg.setBackground(mContext.getResources().getDrawable(R.mipmap.home_message_white)); rl_top.setBackgroundColor(Color.argb((int) 0, 255, 255, 255));//AGB由相关工具获得,或者美工提供 StatusBarUtil.setStatusBarDarkTheme(getActivity(), false); } else if (y > height && y < height * 1.5) { rl_top.setBackgroundColor(mContext.getResources().getColor(R.color.white)); tv_title.setTextColor(mContext.getResources().getColor(R.color.text_000000)); ll_search.setBackground(mContext.getResources().getDrawable(R.drawable.shape_search_product)); iv_msg.setBackground(mContext.getResources().getDrawable(R.mipmap.home_message_black)); rl_top.setBackgroundColor(mContext.getResources().getColor(R.color.white)); rl_top.setBackgroundColor(Color.argb((int) 127, 255, 255, 255)); StatusBarUtil.setStatusBarDarkTheme(getActivity(), true); } else if (y > height * 1.5) { rl_top.setBackgroundColor(mContext.getResources().getColor(R.color.white)); tv_title.setTextColor(mContext.getResources().getColor(R.color.text_000000)); ll_search.setBackground(mContext.getResources().getDrawable(R.drawable.shape_search_product)); iv_msg.setBackground(mContext.getResources().getDrawable(R.mipmap.home_message_black)); rl_top.setBackgroundColor(Color.argb((int) 255, 255, 255, 255)); StatusBarUtil.setStatusBarDarkTheme(getActivity(), true); } } }); } public void setpopLoad() { try { localVersionLoad = Utils.getVersionName(mContext); } catch (Exception e) { e.printStackTrace(); } key = "show_home_load" + localVersion; LogUtil2.log("=========================>>>key" + key); LogUtil2.log("=========================>>>AccountUtils.getVersioncode()" + AccountUtils.getVersioncode()); //是否是安装的第一次 if (!AccountUtils.getVersioncodeHomeLoad().equals(key)) { AccountUtils.putVersioncodeHomeLoad(key); dialog = new CustomDialog(mContext, R.layout.pop_home_load, R.style.CustomDialogTheme); dialog.setCancelable(false); dialog.setCanceledOnTouchOutside(false); ImageView iv_one_button = (ImageView) dialog.findViewById(R.id.iv_one_button); iv_one_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub dialog.dismiss(); } }); dialog.show(); } } private void changeStatusBarTextColor(boolean isBlack) { if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) { if (isBlack) { getActivity().getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);//设置状态栏黑色字体 } else { getActivity().getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);//恢复状态栏白色字体 } } } private volatile static boolean mHasCheckAllScreen; private volatile static boolean mIsAllScreenDevice; public static boolean isAllScreenDevice(Context context) { if (mHasCheckAllScreen) { return mIsAllScreenDevice; } mHasCheckAllScreen = true; mIsAllScreenDevice = false; // 低于 API 21的,都不会是全面屏。。。 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { return false; } WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); if (windowManager != null) { Display display = windowManager.getDefaultDisplay(); Point point = new Point(); display.getRealSize(point); float width, height; if (point.x < point.y) { width = point.x; height = point.y; } else { width = point.y; height = point.x; } if (height / width >= 1.97f) { mIsAllScreenDevice = true; } } return mIsAllScreenDevice; } private int dip2px(Context context, float dipValue) { Resources r = context.getResources(); return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dipValue, r.getDisplayMetrics()); } //判断Activity是否Destroy public static boolean isDestroy(Activity activity) { if (activity == null || activity.isFinishing() || (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && activity.isDestroyed())) { return true; } else { return false; } } private void initListeners() { mXrvProduct.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { super.onScrollStateChanged(recyclerView, newState); switch (newState) { case 0: LogUtil2.log("recyclerview已经停止滚动"); if (getActivity() != null) { Glide.with(getActivity()).load(R.mipmap.huadong2).into(iv_contact); new Handler().postDelayed(new Runnable() { @Override public void run() { Glide.with(getActivity()).load(R.mipmap.jingzhi).into(iv_contact); } }, 1500); } // Glide.with(getActivity()).load(R.mipmap.jingzhi).asGif().diskCacheStrategy(DiskCacheStrategy.SOURCE).into(iv_contact); break; case 1: LogUtil2.log("recyclerview正在被拖拽"); if (getActivity() != null) { Glide.with(getActivity()).load(R.mipmap.huadong).into(iv_contact); } break; case 2: LogUtil2.log("recyclerview正在依靠惯性滚动"); if (getActivity() != null) { Glide.with(getActivity()).load(R.mipmap.huadong).into(iv_contact); } break; } } @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); } }); } @Override public void initData() { super.initData(); } @Override public void onResume() { super.onResume(); } @Override public void onHiddenChanged(boolean hidden) { super.onHiddenChanged(hidden); if (!hidden) { hidden2 = hidden; LogUtil2.log("==========================>>>onHiddenChangedHome" + hidden); loopLayout.stopLoop();// 页面销毁时需要停止 loopLayout.startLoop(); StatusBarUtil.setTranslucentStatus(getActivity()); if (y <= height) { tv_title.setTextColor(mContext.getResources().getColor(R.color.white)); ll_search.setBackground(mContext.getResources().getDrawable(R.drawable.yuanjiao24whire)); iv_msg.setBackground(mContext.getResources().getDrawable(R.mipmap.home_message_white)); rl_top.setBackgroundColor(Color.argb((int) 0, 255, 255, 255));//AGB由相关工具获得,或者美工提供 StatusBarUtil.setStatusBarDarkTheme(getActivity(), false); } else if (y > height && y < height * 1.5) { rl_top.setBackgroundColor(mContext.getResources().getColor(R.color.white)); tv_title.setTextColor(mContext.getResources().getColor(R.color.text_000000)); ll_search.setBackground(mContext.getResources().getDrawable(R.drawable.shape_search_product)); iv_msg.setBackground(mContext.getResources().getDrawable(R.mipmap.home_message_black)); rl_top.setBackgroundColor(mContext.getResources().getColor(R.color.white)); rl_top.setBackgroundColor(Color.argb((int) 127, 255, 255, 255));// changeStatusBarTextColor(false);// BarUtils.setColorNoTranslucent(getActivity(), getResources().getColor(R.color.transparent));// BarUtils.setRootViewFitsSystemWindows(getActivity(), false); StatusBarUtil.setStatusBarDarkTheme(getActivity(), true); } else if (y > height * 1.5) { rl_top.setBackgroundColor(mContext.getResources().getColor(R.color.white)); tv_title.setTextColor(mContext.getResources().getColor(R.color.text_000000)); ll_search.setBackground(mContext.getResources().getDrawable(R.drawable.shape_search_product)); iv_msg.setBackground(mContext.getResources().getDrawable(R.mipmap.home_message_black)); rl_top.setBackgroundColor(Color.argb((int) 255, 255, 255, 255));// changeStatusBarTextColor(true);// BarUtils.setColorNoTranslucent(getActivity(), getResources().getColor(R.color.transparent));// BarUtils.setRootViewFitsSystemWindows(getActivity(), false); StatusBarUtil.setStatusBarDarkTheme(getActivity(), true); } } else { hidden2 = hidden; LogUtil2.log("==========================>>>onHiddenChanged" + hidden); loopLayout.stopLoop();// 页面销毁时需要停止 mHomeAdapter.setIsStop(true); } } @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { if (requestCode == 1000) { if ((grantResults.length > 0) && (grantResults[0] == PackageManager.PERMISSION_GRANTED)) { UserBean query = UserBeanDao.query(); } else { Toast.makeText(mContext, "手机IMEI权限未开启!", Toast.LENGTH_LONG).show(); } } } public boolean checkIme() { int permissionCheck = ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_PHONE_STATE); if (permissionCheck != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions((Activity) mContext, new String[]{Manifest.permission.READ_PHONE_STATE}, 1000); return false; } else { //TODO return true; } } @Override protected void initListener() { super.initListener(); iv_back_top.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { appbar.setExpanded(true, false); iv_back_top.setVisibility(View.GONE); EventManager.post(new RefreshHomeArticleEvent()); } }); ll_search.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (!isLogin()) { UIHelper.showLogin(mContext); return; } UIHelper.showProductSearch(mContext); } }); } @Override protected void onSuccess(String response, int id) { super.onSuccess(response, id); switch (id) { case 100: LogUtil2.log("=========================>>>100" + response.toString()); mXrvProduct.refreshComplete();// refreshLayout.finishRefresh(2000);//传入false表示刷新失败 HomeBean homeBean = GsonUtils.toObject(response, HomeBean.class); mHomePagePlatAdList = homeBean.homePagePlatAdList; if (null != mHomePagePlatAdList && !mHomePagePlatAdList.isEmpty()) { setBannerLoop(mHomePagePlatAdList); } break; case 600://精选产品 setRecommendData(response); break; case 700: LogUtil2.log("=========================>>>700" + response.toString()); setHomeBeanADV(response); break; case 800://提醒中心 setHomeBeanRemind(response); break; case 601://云学院推荐橱窗列表 setRecommendDatas(response); break; case 603: RecommendListBean recommendListBean = GsonUtils.toObject(response, RecommendListBean.class); if (recommendListBean.recommendList != null) { if (recommendListBean.recommendList.size() > 0) { tv_search.setText(recommendListBean.recommendList.get(0)); } } break; case 604://滚动头条 LogUtil2.log("首页文章--滚动条" + response.toString()); setHomeAdviance(response); break; case 605://文章 LogUtil2.log("首页文章--文章" + response.toString()); ll_tab.setVisibility(View.VISIBLE); setHomeArticle(response); break; } } private void setHomeArticle(String response) { if (TextUtils.isEmpty(response)) { return; } final FindClassifysBean bean = GsonUtils.toObject(response, FindClassifysBean.class); if (bean!=null){ if (!isFirstTab) { if (articleClassifyList != null && bean.articleClassifyList.size() == articleClassifyList.size()) { for (int i = 0; i < bean.articleClassifyList.size(); i++) { for (int j = 0; j < articleClassifyList.size(); j++) { if (bean.articleClassifyList.get(i).uuid.equals(articleClassifyList.get(j).uuid)) { isSame = false; } } } } } LogUtil2.log("第一次加载--"+isSame+"---"+isFirstTab+"--"+isRemind+"---"+isHoutai); if (isRemind) { isRemind=false; if (!isSame) { isSame = true; return; } }else { appbar.setExpanded(true, false); iv_back_top.setVisibility(View.GONE); } } isFirstTab=false; articleClassifyList = bean.articleClassifyList; // mHomeAdapter.setHomeArticle(bean); if (bean.articleClassifyList != null && bean.articleClassifyList.size() > 0) { mFragments.clear(); mTitles.clear(); for (int i = 0; i < bean.articleClassifyList.size(); i++) { ArticleClassifyListBean bean2 = bean.articleClassifyList.get(i); mTitles.add(bean2.name); Bundle b = new Bundle(); b.putSerializable("bean", bean.articleClassifyList.get(i)); b.putInt("positionClick", i); b.putSerializable("company",companyBaseBean); Fragment f = new ArticleHomeFragment(); f.setArguments(b); mFragments.add(f); } if (getActivity() != null) { viewpager.setAdapter(mAdapter); tl_9.setViewPager(viewpager,mTitles); tl_9.setCurrentTab(0); viewpager.setCurrentItem(0); setTab(); if (!isFirstLay){ LogUtil2.log("刷新--"); mAdapter.setNewFragments(); } isFirstLay = false; } } } @Override public void onPause() { super.onPause(); Log.i("滚动高度--onPause", "展开"); } @Override public void onStop() { super.onStop(); Log.i("滚动高度--onStop", "展开"); if (isRemind){ isOther=true; } if (appbarState == 1) { Log.i("滚动高度--", "展开"); //展开状态 } else if (appbarState == 2) { Log.i("滚动高度--", "折叠"); //折叠状态 } else if (appbarState ==3){ Log.i("滚动高度--", "中间"); //中间状态 } } public void setTab() { tl_9.setTextUnselectColor(getResources().getColor(R.color.text_000000)); tl_9.setTextSelectColor(getResources().getColor(R.color.white)); tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_1A75FF)); tl_9.setOnTabSelectListener(new OnTabSelectListener() { @Override public void onTabSelect(int position) { if (position % 9 == 0) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_1A75FF));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_1A75FF)); } else if (position % 9 == 1) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_F05F12));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_F05F12)); } else if (position % 9 == 2) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_DD8033));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_DD8033)); } else if (position % 9 == 3) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_14BEDF));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_14BEDF)); } else if (position % 9 == 4) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_2B2EF5));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_2B2EF5)); } else if (position % 9 == 5) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_EEB01F));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_EEB01F)); } else if (position % 9 == 6) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_E92A4B));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_E92A4B)); } else if (position % 9 == 7) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_00C99E));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_00C99E)); } else if (position % 9 == 8) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_299BF5));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_299BF5)); } } @Override public void onTabReselect(int position) { } }); viewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int i, float v, int i1) { } @Override public void onPageSelected(int position) {// tab_head.setCurrentTab(position);// if (!isFirstLay){ if (mFragments != null && mFragments.size() > 0 && articleClassifyList != null && articleClassifyList.size() > 0) { ArticleHomeFragment fragment = (ArticleHomeFragment) mFragments.get(position); fragment.setRefresh(position, articleClassifyList.get(position)); }// }// if (position % 9 == 0) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_1A75FF));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_1A75FF)); } else if (position % 9 == 1) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_F05F12));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_F05F12)); } else if (position % 9 == 2) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_DD8033));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_DD8033)); } else if (position % 9 == 3) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_14BEDF));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_14BEDF)); } else if (position % 9 == 4) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_2B2EF5));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_2B2EF5)); } else if (position % 9 == 5) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_EEB01F));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_EEB01F)); } else if (position % 9 == 6) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_E92A4B));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_E92A4B)); } else if (position % 9 == 7) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_00C99E));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_00C99E)); } else if (position % 9 == 8) { tl_9.setIndicatorColor(mContext.getResources().getColor(R.color.name_299BF5));// tab_head.setIndicatorColor(mContext.getResources().getColor(R.color.name_299BF5)); } } @Override public void onPageScrollStateChanged(int i) { } }); } @Override public void onClickArticle(boolean isremind) { LogUtil2.log("isRemind----"+isremind); isRemind=isremind; } private class MyPagerAdapter extends FragmentPagerAdapter { private List<String> tags;//标示fragment的tag private FragmentManager fragmentManager; public MyPagerAdapter(FragmentManager fm) { super(fm); this.tags = new ArrayList<>(); this.fragmentManager = fm; }// public MyPagerAdapter(FragmentManager fm) {// super(fm);// } @Override public int getCount() { return mFragments.size(); } @Override public CharSequence getPageTitle(int position) { return mTitles.get(position); } @Override public Fragment getItem(int position) { return mFragments.get(position); } @Override public int getItemPosition(@NonNull Object object) { return POSITION_NONE; } //这个就不说了 private String makeFragmentName(int viewId, long id) { return "android:switcher:" + viewId + ":" + id; } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { tags.add(makeFragmentName(container.getId(), getItemId(position))); Fragment fragment = (Fragment) super.instantiateItem(container, position); this.fragmentManager.beginTransaction().show(fragment).commitAllowingStateLoss(); return fragment; } //根据tag查找缓存的fragment,移除缓存的fragment,替换成新的 public void setNewFragments() { if (this.tags != null) { FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); for (int i = 0; i < tags.size(); i++) { fragmentTransaction.remove(fragmentManager.findFragmentByTag(tags.get(i))); } fragmentTransaction.commitAllowingStateLoss(); fragmentManager.executePendingTransactions(); tags.clear(); } notifyDataSetChanged(); } } private void setBannerLoop(List<HomeBannerBean> mHomePagePlatAdList) { // 准备数据 ArrayList<BannerInfo> bannerInfos = new ArrayList<>(); List<String> bgList = new ArrayList<>(); for (int i = 0; i < mHomePagePlatAdList.size(); i++) { bannerInfos.add(new BannerInfo(mHomePagePlatAdList.get(i).imageUrl, mHomePagePlatAdList.get(i).url)); bgList.add(mHomePagePlatAdList.get(i).imageColour); } if (bannerInfos.size() == 0) { return; } if (bgList.size() == 0) { return; } loopLayout.setLoopData(bannerInfos);// 设置轮播数据 if (bgList != null && mContext != null) { container.setBannerBackBg(mContext, bgList);// 背景容器设置轮播图片 } loopLayout.setBannerBgContainer(container); loopLayout.stopLoop(); loopLayout.startLoop(); } private void setRecommendDatas(String response) { if (TextUtils.isEmpty(response)) { return; } FaXianListsBean bean = GsonUtils.toObject(response, FaXianListsBean.class);// KeChengRecommendsBean recommendsBean=bean.courseRecommends.get(0); mHomeAdapter.setHomeKeCheng(bean); } public static <T> List<T> getObjectList(String jsonString, Class<T> cls) { List<T> list = new ArrayList<T>(); try { Gson gson = new Gson(); JsonArray arry = new JsonParser().parse(jsonString).getAsJsonArray(); for (JsonElement jsonElement : arry) { list.add(gson.fromJson(jsonElement, cls)); } } catch (Exception e) { e.printStackTrace(); } return list; } private void setRecommendData(String response) { if (TextUtils.isEmpty(response)) { return; } HomeProductBean homeProductBean = GsonUtils.toObject(response, HomeProductBean.class);// List<HomeBottomProductBean> homeBean =getObjectList(response, HomeBottomProductBean.class); mHomeAdapter.setHomeBean(homeProductBean); } private void setHomeBeanADV(String response) { HomeBean homeBean2 = GsonUtils.toObject(response, HomeBean.class); mHomeAdapter.setHomeBeanADV(homeBean2); } private void setHomeBeanRemind(String response) { if (TextUtils.isEmpty(response)) { return; } final KaoShiStatussBean bean = GsonUtils.toObject(response, KaoShiStatussBean.class); mHomeAdapter.setHomeRemind(bean); } private void setHomeAdviance(String response) { if (TextUtils.isEmpty(response)) { return; } final HeadHomeBean bean = GsonUtils.toObject(response, HeadHomeBean.class); mHomeAdapter.setHomeAdviance(bean); } @Override public void onTabReselect() { LogUtil.e(LogUtil.CQ, "onTabReselect HomeFragment"); } public int getNum(int endNum) { if (endNum > 0) { Random random = new Random(); return random.nextInt(endNum); } return 0; } @Override public void onItemClick(int position) { } @Override public void onDestroy() { super.onDestroy(); EventManager.unregister(this); loopLayout.stopLoop();// 页面销毁时需要停止 mHomeAdapter.setIsStop(true); if(iv_contact != null && !getActivity().isDestroyed()){ Glide.with(getContext()).clear(iv_contact); iv_contact = null; } } @Override public void onDestroyView() { super.onDestroyView(); } public static SetOnclickInterface listenersTOP; @Override public void onRefresh() { } @Override public void onLoadMore() { } @Override public void onBannerClick(int position, ArrayList<BannerInfo> banner) { } @Override public void onChildScroll(RecyclerView recyclerView, int newState) { switch (newState) { case 0: LogUtil2.log("recyclerview已经停止滚动"); if (getActivity() != null) { Glide.with(getActivity()).load(R.mipmap.huadong2).into(iv_contact); new Handler().postDelayed(new Runnable() { @Override public void run() { Glide.with(getActivity()).load(R.mipmap.jingzhi).into(iv_contact); } }, 1500); } break; case 1: LogUtil2.log("recyclerview正在被拖拽"); if (getActivity() != null) { Glide.with(getActivity()).load(R.mipmap.huadong).into(iv_contact); } break; case 2: LogUtil2.log("recyclerview正在依靠惯性滚动"); if (getActivity() != null) { Glide.with(getActivity()).load(R.mipmap.huadong).into(iv_contact); } break; } } }
感谢各位的阅读!关于“如何使用Android实现上拉吸顶效果”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341