Ver código fonte

首页占位图与banner设置

liukai 2 anos atrás
pai
commit
cd013ba0c4

+ 25 - 7
cpt_main/src/main/java/com/hongyegroup/cpt_main/ui/HomeFragment.kt

@@ -3,6 +3,8 @@ package com.hongyegroup.cpt_main.ui
 import android.os.Bundle
 import android.view.View
 import android.widget.ImageView
+import com.guadou.cs_cptservices.adapter.BannerGlobalAdapter
+import com.guadou.cs_cptservices.adapter.BannerRectangleCircleIndicator
 import com.guadou.cs_cptservices.base.fragment.YYBaseVDBLoadingFragment
 import com.guadou.cs_cptservices.interfaces.IFragmentRefresh
 import com.guadou.lib_baselib.bean.DataBindingConfig
@@ -15,7 +17,7 @@ import com.guadou.lib_baselib.ext.vertical
 import com.guadou.lib_baselib.utils.CommUtils
 import com.guadou.lib_baselib.view.gloading.GLoadingTitleStatus
 import com.guadou.lib_baselib.view.gloading.Gloading
-import com.guadou.lib_baselib.view.gloading.GloadingGlobalAdapter
+import com.guadou.lib_baselib.view.gloading.GloadingPlaceHolderlAdapter
 import com.hongyegroup.cpt_main.BR
 import com.hongyegroup.cpt_main.R
 import com.hongyegroup.cpt_main.databinding.FragmentHomeBinding
@@ -36,7 +38,7 @@ class HomeFragment : YYBaseVDBLoadingFragment<HomeViewModel, FragmentHomeBinding
 
     //重新生成GLoading对象-跳动动画
     override fun generateGLoading(view: View): Gloading.Holder {
-        return Gloading.from(GloadingGlobalAdapter())
+        return Gloading.from(GloadingPlaceHolderlAdapter(R.layout.layout_placeholder_home))
             .wrap(view, GLoadingTitleStatus(true, true, true))
             .withRetry { onGoadingRetry() }
     }
@@ -57,13 +59,12 @@ class HomeFragment : YYBaseVDBLoadingFragment<HomeViewModel, FragmentHomeBinding
         //requestHomeData()
 
         CommUtils.getHandler().postDelayed({
+            mBinding.refreshLayout.finishRefresh()
             showStateSuccess()
             popopData()
-            mBinding.refreshLayout.finishRefresh()
         }, 1500)
     }
 
-
     override fun onGoadingRetry() {
         initData()
     }
@@ -76,16 +77,16 @@ class HomeFragment : YYBaseVDBLoadingFragment<HomeViewModel, FragmentHomeBinding
     }
 
     override fun onRefresh(refreshLayout: RefreshLayout) {
-        initData()
-
         CommUtils.getHandler().postDelayed({
-            popopData()
             mBinding.refreshLayout.finishRefresh()
+            popopData()
         }, 1500)
     }
 
     private fun popopData() {
 
+        popupBannerData()
+
         val hotJobs = listOf("1", "2", "3", "4", "5")
         val cityJobs = listOf("1", "2", "3", "4")
         val areaJobs = listOf("1", "2", "3", "4", "5", "6")
@@ -144,6 +145,23 @@ class HomeFragment : YYBaseVDBLoadingFragment<HomeViewModel, FragmentHomeBinding
             }
     }
 
+    private fun popupBannerData() {
+
+        val imgUrls = listOf(
+            "http://yyjobs-admin-dev.guabean.com/storage/202206/21/5Kg5pL4lKlUkOijrntMucMw4CgbDMJbQ8ZfTXWjU-750x320.png",
+            "http://yyjobs-admin-dev.guabean.com/storage/202205/31/VX8sQRRgDXCC9nReU9hFx7Hhxg0karC1tQrWH74S-750x320.png",
+            "http://yyjobs-admin-dev.guabean.com/storage/202207/05/i049TYZ9GTf2BJ0jtc7cwa9zq7gtJGJhiVaUzcyB-1563x667.png"
+        )
+
+        mBinding.banner.addBannerLifecycleObserver(this)
+        mBinding.banner.indicator = BannerRectangleCircleIndicator(mActivity)
+        mBinding.banner.adapter = BannerGlobalAdapter(imgUrls)
+
+        mBinding.banner.setOnBannerListener { _, position ->
+            toast("点击Banner根据类型跳转")
+        }
+    }
+
     override fun scrollTopRefresh() {
         mBinding.scrollView.smoothScrollTo(0, 0)
         mBinding.refreshLayout.autoRefresh()

+ 3 - 1
cpt_main/src/main/res/layout/fragment_home.xml

@@ -169,7 +169,7 @@
                         </androidx.constraintlayout.widget.ConstraintLayout>
 
                         <View
-                            android:layout_width="@dimen/d_0.7dp"
+                            android:layout_width="@dimen/d_1dp"
                             android:layout_height="match_parent"
                             android:background="@color/divider_color_f0" />
 
@@ -231,6 +231,7 @@
                             android:layout_width="match_parent"
                             android:layout_height="0dp"
                             android:background="@drawable/placeholder_img_banner"
+
                             app:banner_auto_loop="true"
                             app:banner_indicator_height="@dimen/d_5dp"
                             app:banner_indicator_marginBottom="-3dp"
@@ -240,6 +241,7 @@
                             app:banner_indicator_selected_color="@color/page_bg"
                             app:banner_indicator_selected_width="@dimen/d_17dp"
                             app:banner_loop_time="5000"
+
                             app:layout_constraintDimensionRatio="690:305"
                             tools:ignore="MissingConstraints" />
 

+ 8 - 0
cs_baselib/src/main/java/com/guadou/lib_baselib/ext/StringExt.kt

@@ -42,6 +42,14 @@ fun String?.checkEmpty(): Boolean {
     ) && !"null".equals(this.trim({ it <= ' ' }), ignoreCase = true))
 }
 
+fun String?.checkExtEmpty(success: (str: String) -> Unit, fail: (() -> Unit)? = null) {
+    if (!this.checkEmpty()) {
+        success(this!!)
+    } else {
+        fail?.invoke()
+    }
+}
+
 @SuppressLint("NewApi")
 fun Collection<Any>?.checkEmpty(): Boolean {
     if (this == null) return true

+ 51 - 0
cs_baselib/src/main/res/layout/layout_placeholder_big_item.xml

@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tool="http://schemas.android.com/tools"
+    android:id="@+id/ll_placeholder"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="180dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_15dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@drawable/shimmer_bg_rounded_corners5" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="180dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_15dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@drawable/shimmer_bg_rounded_corners5" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="180dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_15dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@drawable/shimmer_bg_rounded_corners5" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="180dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_15dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@drawable/shimmer_bg_rounded_corners5" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="180dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_15dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@drawable/shimmer_bg_rounded_corners5" />
+
+</LinearLayout>
+

+ 208 - 0
cs_baselib/src/main/res/layout/layout_placeholder_home.xml

@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tool="http://schemas.android.com/tools"
+    android:id="@+id/ll_placeholder"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="56dp"
+        android:orientation="horizontal">
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center">
+
+            <View
+                android:layout_width="@dimen/d_35dp"
+                android:layout_height="@dimen/d_35dp"
+                android:background="@drawable/shimmer_circle_background" />
+
+            <View
+                android:layout_width="@dimen/d_30dp"
+                android:layout_height="@dimen/d_10dp"
+                android:layout_marginLeft="@dimen/d_15dp"
+                android:background="@color/shimmer_background_color" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:gravity="center">
+
+            <View
+                android:layout_width="@dimen/d_35dp"
+                android:layout_height="@dimen/d_35dp"
+                android:background="@drawable/shimmer_circle_background" />
+
+            <View
+                android:layout_width="@dimen/d_30dp"
+                android:layout_height="@dimen/d_10dp"
+                android:layout_marginLeft="@dimen/d_15dp"
+                android:background="@color/shimmer_background_color" />
+
+        </LinearLayout>
+
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="180dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_15dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@drawable/shimmer_bg_rounded_corners5" />
+
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_50dp"
+        android:gravity="center_vertical"
+        android:orientation="horizontal">
+
+        <View
+            android:layout_width="@dimen/d_120dp"
+            android:layout_height="@dimen/d_15dp"
+            android:layout_marginLeft="@dimen/d_15dp"
+            android:background="@color/shimmer_background_color" />
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="1dp"
+            android:layout_weight="1" />
+
+        <View
+            android:layout_width="@dimen/d_50dp"
+            android:layout_height="@dimen/d_15dp"
+            android:layout_marginLeft="@dimen/d_15dp"
+            android:layout_marginRight="@dimen/d_15dp"
+            android:background="@color/shimmer_background_color" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="@dimen/d_95dp"
+            android:layout_marginLeft="@dimen/d_15dp"
+            android:layout_marginRight="@dimen/d_25dp"
+            android:layout_weight="1"
+            android:background="@drawable/shimmer_bg_rounded_corners5" />
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="@dimen/d_95dp"
+            android:layout_marginRight="@dimen/d_15dp"
+            android:layout_weight="1"
+            android:background="@drawable/shimmer_bg_rounded_corners5" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/d_15dp"
+        android:orientation="horizontal">
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="@dimen/d_95dp"
+            android:layout_marginLeft="@dimen/d_15dp"
+            android:layout_marginRight="@dimen/d_25dp"
+            android:layout_weight="1"
+            android:background="@drawable/shimmer_bg_rounded_corners5" />
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="@dimen/d_95dp"
+            android:layout_marginRight="@dimen/d_15dp"
+            android:layout_weight="1"
+            android:background="@drawable/shimmer_bg_rounded_corners5" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_50dp"
+        android:gravity="center_vertical"
+        android:orientation="horizontal">
+
+        <View
+            android:layout_width="@dimen/d_120dp"
+            android:layout_height="@dimen/d_15dp"
+            android:layout_marginLeft="@dimen/d_15dp"
+            android:background="@color/shimmer_background_color" />
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="1dp"
+            android:layout_weight="1" />
+
+        <View
+            android:layout_width="@dimen/d_50dp"
+            android:layout_height="@dimen/d_15dp"
+            android:layout_marginLeft="@dimen/d_15dp"
+            android:layout_marginRight="@dimen/d_15dp"
+            android:background="#dedede" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="@dimen/d_95dp"
+            android:layout_marginLeft="@dimen/d_15dp"
+            android:layout_marginRight="@dimen/d_25dp"
+            android:layout_weight="1"
+            android:background="@drawable/shimmer_bg_rounded_corners5" />
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="@dimen/d_95dp"
+            android:layout_marginRight="@dimen/d_15dp"
+            android:layout_weight="1"
+            android:background="@drawable/shimmer_bg_rounded_corners5" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/d_15dp"
+        android:orientation="horizontal">
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="@dimen/d_95dp"
+            android:layout_marginLeft="@dimen/d_15dp"
+            android:layout_marginRight="@dimen/d_25dp"
+            android:layout_weight="1"
+            android:background="@drawable/shimmer_bg_rounded_corners5" />
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="@dimen/d_95dp"
+            android:layout_marginRight="@dimen/d_15dp"
+            android:layout_weight="1"
+            android:background="@drawable/shimmer_bg_rounded_corners5" />
+
+    </LinearLayout>
+
+</LinearLayout>
+

+ 382 - 389
cs_baselib/src/main/res/layout/layout_placeholder_normal.xml

@@ -1,528 +1,521 @@
 <?xml version="1.0" encoding="utf-8"?>
-<com.guadou.lib_baselib.view.shimmer.ShimmerLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<!--  Loading  -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tool="http://schemas.android.com/tools"
+    android:id="@+id/ll_placeholder"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:orientation="vertical">
 
-    <!--  Loading  -->
     <LinearLayout
-        android:id="@+id/ll_placeholder"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical">
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
+
+        <View
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
 
         <LinearLayout
-            android:layout_width="match_parent"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:paddingLeft="@dimen/d_15dp"
-            android:paddingTop="@dimen/d_13dp"
-            android:paddingRight="@dimen/d_15dp">
+            android:layout_weight="1"
+            android:orientation="vertical">
 
             <View
-                android:layout_width="@dimen/d_45dp"
-                android:layout_height="@dimen/d_45dp"
-                android:layout_marginTop="@dimen/d_10dp"
-                android:background="@drawable/shimmer_circle_background" />
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-            <LinearLayout
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical">
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-                <View
-                    android:layout_width="@dimen/d_100dp"
-                    android:layout_height="@dimen/d_25dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        </LinearLayout>
 
-                <View
-                    android:layout_width="@dimen/d_120dp"
-                    android:layout_height="@dimen/d_20dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:layout_marginTop="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
 
-            </LinearLayout>
+    </LinearLayout>
 
-            <View
-                android:layout_width="70dp"
-                android:layout_height="26dp"
-                android:layout_gravity="center_vertical"
-                android:background="@drawable/shimmer_bg_rounded_corners20" />
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
 
-        </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
 
         <View
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/d_0.5dp"
-            android:layout_marginLeft="@dimen/d_15dp"
-            android:layout_marginTop="@dimen/d_20dp"
-            android:layout_marginRight="@dimen/d_15dp"
-            android:background="@color/shimmer_background_color" />
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
 
         <LinearLayout
-            android:layout_width="match_parent"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:paddingLeft="@dimen/d_15dp"
-            android:paddingTop="@dimen/d_13dp"
-            android:paddingRight="@dimen/d_15dp">
+            android:layout_weight="1"
+            android:orientation="vertical">
 
             <View
-                android:layout_width="@dimen/d_45dp"
-                android:layout_height="@dimen/d_45dp"
-                android:layout_marginTop="@dimen/d_10dp"
-                android:background="@drawable/shimmer_circle_background" />
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-            <LinearLayout
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical">
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-                <View
-                    android:layout_width="@dimen/d_100dp"
-                    android:layout_height="@dimen/d_25dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        </LinearLayout>
 
-                <View
-                    android:layout_width="@dimen/d_120dp"
-                    android:layout_height="@dimen/d_20dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:layout_marginTop="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
 
-            </LinearLayout>
+    </LinearLayout>
 
-            <View
-                android:layout_width="70dp"
-                android:layout_height="26dp"
-                android:layout_gravity="center_vertical"
-                android:background="@drawable/shimmer_bg_rounded_corners20" />
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
 
-        </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
 
         <View
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/d_0.5dp"
-            android:layout_marginLeft="@dimen/d_15dp"
-            android:layout_marginTop="@dimen/d_20dp"
-            android:layout_marginRight="@dimen/d_15dp"
-            android:background="@color/shimmer_background_color" />
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
 
         <LinearLayout
-            android:layout_width="match_parent"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:paddingLeft="@dimen/d_15dp"
-            android:paddingTop="@dimen/d_13dp"
-            android:paddingRight="@dimen/d_15dp">
+            android:layout_weight="1"
+            android:orientation="vertical">
 
             <View
-                android:layout_width="@dimen/d_45dp"
-                android:layout_height="@dimen/d_45dp"
-                android:layout_marginTop="@dimen/d_10dp"
-                android:background="@drawable/shimmer_circle_background" />
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-            <LinearLayout
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical">
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-                <View
-                    android:layout_width="@dimen/d_100dp"
-                    android:layout_height="@dimen/d_25dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        </LinearLayout>
 
-                <View
-                    android:layout_width="@dimen/d_120dp"
-                    android:layout_height="@dimen/d_20dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:layout_marginTop="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
 
-            </LinearLayout>
+    </LinearLayout>
 
-            <View
-                android:layout_width="70dp"
-                android:layout_height="26dp"
-                android:layout_gravity="center_vertical"
-                android:background="@drawable/shimmer_bg_rounded_corners20" />
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
 
-        </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
 
         <View
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/d_0.5dp"
-            android:layout_marginLeft="@dimen/d_15dp"
-            android:layout_marginTop="@dimen/d_20dp"
-            android:layout_marginRight="@dimen/d_15dp"
-            android:background="@color/shimmer_background_color" />
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
 
         <LinearLayout
-            android:layout_width="match_parent"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:paddingLeft="@dimen/d_15dp"
-            android:paddingTop="@dimen/d_13dp"
-            android:paddingRight="@dimen/d_15dp">
+            android:layout_weight="1"
+            android:orientation="vertical">
 
             <View
-                android:layout_width="@dimen/d_45dp"
-                android:layout_height="@dimen/d_45dp"
-                android:layout_marginTop="@dimen/d_10dp"
-                android:background="@drawable/shimmer_circle_background" />
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-            <LinearLayout
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical">
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-                <View
-                    android:layout_width="@dimen/d_100dp"
-                    android:layout_height="@dimen/d_25dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        </LinearLayout>
 
-                <View
-                    android:layout_width="@dimen/d_120dp"
-                    android:layout_height="@dimen/d_20dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:layout_marginTop="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
 
-            </LinearLayout>
+    </LinearLayout>
 
-            <View
-                android:layout_width="70dp"
-                android:layout_height="26dp"
-                android:layout_gravity="center_vertical"
-                android:background="@drawable/shimmer_bg_rounded_corners20" />
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
 
-        </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
 
         <View
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/d_0.5dp"
-            android:layout_marginLeft="@dimen/d_15dp"
-            android:layout_marginTop="@dimen/d_20dp"
-            android:layout_marginRight="@dimen/d_15dp"
-            android:background="@color/shimmer_background_color" />
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
 
         <LinearLayout
-            android:layout_width="match_parent"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:paddingLeft="@dimen/d_15dp"
-            android:paddingTop="@dimen/d_13dp"
-            android:paddingRight="@dimen/d_15dp">
+            android:layout_weight="1"
+            android:orientation="vertical">
 
             <View
-                android:layout_width="@dimen/d_45dp"
-                android:layout_height="@dimen/d_45dp"
-                android:layout_marginTop="@dimen/d_10dp"
-                android:background="@drawable/shimmer_circle_background" />
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-            <LinearLayout
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical">
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-                <View
-                    android:layout_width="@dimen/d_100dp"
-                    android:layout_height="@dimen/d_25dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        </LinearLayout>
 
-                <View
-                    android:layout_width="@dimen/d_120dp"
-                    android:layout_height="@dimen/d_20dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:layout_marginTop="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
 
-            </LinearLayout>
+    </LinearLayout>
 
-            <View
-                android:layout_width="70dp"
-                android:layout_height="26dp"
-                android:layout_gravity="center_vertical"
-                android:background="@drawable/shimmer_bg_rounded_corners20" />
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
 
-        </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
 
         <View
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/d_0.5dp"
-            android:layout_marginLeft="@dimen/d_15dp"
-            android:layout_marginTop="@dimen/d_20dp"
-            android:layout_marginRight="@dimen/d_15dp"
-            android:background="@color/shimmer_background_color" />
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
 
         <LinearLayout
-            android:layout_width="match_parent"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:paddingLeft="@dimen/d_15dp"
-            android:paddingTop="@dimen/d_13dp"
-            android:paddingRight="@dimen/d_15dp">
+            android:layout_weight="1"
+            android:orientation="vertical">
 
             <View
-                android:layout_width="@dimen/d_45dp"
-                android:layout_height="@dimen/d_45dp"
-                android:layout_marginTop="@dimen/d_10dp"
-                android:background="@drawable/shimmer_circle_background" />
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-            <LinearLayout
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical">
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-                <View
-                    android:layout_width="@dimen/d_100dp"
-                    android:layout_height="@dimen/d_25dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        </LinearLayout>
 
-                <View
-                    android:layout_width="@dimen/d_120dp"
-                    android:layout_height="@dimen/d_20dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:layout_marginTop="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
 
-            </LinearLayout>
+    </LinearLayout>
 
-            <View
-                android:layout_width="70dp"
-                android:layout_height="26dp"
-                android:layout_gravity="center_vertical"
-                android:background="@drawable/shimmer_bg_rounded_corners20" />
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
 
-        </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
 
         <View
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/d_0.5dp"
-            android:layout_marginLeft="@dimen/d_15dp"
-            android:layout_marginTop="@dimen/d_20dp"
-            android:layout_marginRight="@dimen/d_15dp"
-            android:background="@color/shimmer_background_color" />
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
 
         <LinearLayout
-            android:layout_width="match_parent"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:paddingLeft="@dimen/d_15dp"
-            android:paddingTop="@dimen/d_13dp"
-            android:paddingRight="@dimen/d_15dp">
+            android:layout_weight="1"
+            android:orientation="vertical">
 
             <View
-                android:layout_width="@dimen/d_45dp"
-                android:layout_height="@dimen/d_45dp"
-                android:layout_marginTop="@dimen/d_10dp"
-                android:background="@drawable/shimmer_circle_background" />
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-            <LinearLayout
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical">
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-                <View
-                    android:layout_width="@dimen/d_100dp"
-                    android:layout_height="@dimen/d_25dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        </LinearLayout>
 
-                <View
-                    android:layout_width="@dimen/d_120dp"
-                    android:layout_height="@dimen/d_20dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:layout_marginTop="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
 
-            </LinearLayout>
+    </LinearLayout>
 
-            <View
-                android:layout_width="70dp"
-                android:layout_height="26dp"
-                android:layout_gravity="center_vertical"
-                android:background="@drawable/shimmer_bg_rounded_corners20" />
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
 
-        </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
 
         <View
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/d_0.5dp"
-            android:layout_marginLeft="@dimen/d_15dp"
-            android:layout_marginTop="@dimen/d_20dp"
-            android:layout_marginRight="@dimen/d_15dp"
-            android:background="@color/shimmer_background_color" />
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
 
         <LinearLayout
-            android:layout_width="match_parent"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:paddingLeft="@dimen/d_15dp"
-            android:paddingTop="@dimen/d_13dp"
-            android:paddingRight="@dimen/d_15dp">
+            android:layout_weight="1"
+            android:orientation="vertical">
 
             <View
-                android:layout_width="@dimen/d_45dp"
-                android:layout_height="@dimen/d_45dp"
-                android:layout_marginTop="@dimen/d_10dp"
-                android:background="@drawable/shimmer_circle_background" />
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-            <LinearLayout
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical">
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-                <View
-                    android:layout_width="@dimen/d_100dp"
-                    android:layout_height="@dimen/d_25dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        </LinearLayout>
 
-                <View
-                    android:layout_width="@dimen/d_120dp"
-                    android:layout_height="@dimen/d_20dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:layout_marginTop="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
 
-            </LinearLayout>
+    </LinearLayout>
 
-            <View
-                android:layout_width="70dp"
-                android:layout_height="26dp"
-                android:layout_gravity="center_vertical"
-                android:background="@drawable/shimmer_bg_rounded_corners20" />
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
 
-        </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
 
         <View
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/d_0.5dp"
-            android:layout_marginLeft="@dimen/d_15dp"
-            android:layout_marginTop="@dimen/d_20dp"
-            android:layout_marginRight="@dimen/d_15dp"
-            android:background="@color/shimmer_background_color" />
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
 
         <LinearLayout
-            android:layout_width="match_parent"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:paddingLeft="@dimen/d_15dp"
-            android:paddingTop="@dimen/d_13dp"
-            android:paddingRight="@dimen/d_15dp">
+            android:layout_weight="1"
+            android:orientation="vertical">
 
             <View
-                android:layout_width="@dimen/d_45dp"
-                android:layout_height="@dimen/d_45dp"
-                android:layout_marginTop="@dimen/d_10dp"
-                android:background="@drawable/shimmer_circle_background" />
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-            <LinearLayout
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical">
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
-                <View
-                    android:layout_width="@dimen/d_100dp"
-                    android:layout_height="@dimen/d_25dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        </LinearLayout>
 
-                <View
-                    android:layout_width="@dimen/d_120dp"
-                    android:layout_height="@dimen/d_20dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:layout_marginTop="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
 
-            </LinearLayout>
+    </LinearLayout>
 
-            <View
-                android:layout_width="70dp"
-                android:layout_height="26dp"
-                android:layout_gravity="center_vertical"
-                android:background="@drawable/shimmer_bg_rounded_corners20" />
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
 
-        </LinearLayout>
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
 
         <View
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/d_0.5dp"
-            android:layout_marginLeft="@dimen/d_15dp"
-            android:layout_marginTop="@dimen/d_20dp"
-            android:layout_marginRight="@dimen/d_15dp"
-            android:background="@color/shimmer_background_color" />
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
 
         <LinearLayout
-            android:layout_width="match_parent"
+            android:layout_width="0dp"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:paddingLeft="@dimen/d_15dp"
-            android:paddingTop="@dimen/d_13dp"
-            android:paddingRight="@dimen/d_15dp">
+            android:layout_weight="1"
+            android:orientation="vertical">
 
             <View
-                android:layout_width="@dimen/d_45dp"
-                android:layout_height="@dimen/d_45dp"
-                android:layout_marginTop="@dimen/d_10dp"
-                android:background="@drawable/shimmer_circle_background" />
-
-            <LinearLayout
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:orientation="vertical">
-
-                <View
-                    android:layout_width="@dimen/d_100dp"
-                    android:layout_height="@dimen/d_25dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
-
-                <View
-                    android:layout_width="@dimen/d_120dp"
-                    android:layout_height="@dimen/d_20dp"
-                    android:layout_marginLeft="@dimen/d_10dp"
-                    android:layout_marginTop="@dimen/d_10dp"
-                    android:background="@color/shimmer_background_color" />
-
-            </LinearLayout>
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
             <View
-                android:layout_width="70dp"
-                android:layout_height="26dp"
-                android:layout_gravity="center_vertical"
-                android:background="@drawable/shimmer_bg_rounded_corners20" />
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
 
         </LinearLayout>
 
         <View
-            android:layout_width="match_parent"
-            android:layout_height="@dimen/d_0.5dp"
-            android:layout_marginLeft="@dimen/d_15dp"
-            android:layout_marginTop="@dimen/d_20dp"
-            android:layout_marginRight="@dimen/d_15dp"
-            android:background="@color/shimmer_background_color" />
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
 
     </LinearLayout>
 
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
 
-</com.guadou.lib_baselib.view.shimmer.ShimmerLayout>
+</LinearLayout>

+ 429 - 0
cs_baselib/src/main/res/layout/layout_placeholder_normal_search.xml

@@ -0,0 +1,429 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tool="http://schemas.android.com/tools"
+    android:id="@+id/ll_placeholder"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_30dp"
+        android:layout_marginLeft="@dimen/d_20dp"
+        android:layout_marginTop="15dp"
+        android:layout_marginRight="@dimen/d_20dp"
+        android:layout_marginBottom="@dimen/d_13dp"
+        android:background="@drawable/shimmer_bg_rounded_corners20" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
+
+        <View
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <View
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
+
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
+
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
+
+        <View
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <View
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
+
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
+
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
+
+        <View
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <View
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
+
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
+
+        <View
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <View
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
+
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
+
+        <View
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <View
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
+
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
+
+        <View
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <View
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
+
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
+
+        <View
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <View
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
+
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:paddingLeft="@dimen/d_15dp"
+        android:paddingTop="@dimen/d_13dp"
+        android:paddingRight="@dimen/d_15dp">
+
+        <View
+            android:layout_width="@dimen/d_45dp"
+            android:layout_height="@dimen/d_45dp"
+            android:layout_marginTop="@dimen/d_10dp"
+            android:background="@drawable/shimmer_circle_background" />
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:orientation="vertical">
+
+            <View
+                android:layout_width="@dimen/d_100dp"
+                android:layout_height="@dimen/d_25dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+            <View
+                android:layout_width="@dimen/d_120dp"
+                android:layout_height="@dimen/d_20dp"
+                android:layout_marginLeft="@dimen/d_10dp"
+                android:layout_marginTop="@dimen/d_10dp"
+                android:background="@color/shimmer_background_color" />
+
+        </LinearLayout>
+
+        <View
+            android:layout_width="70dp"
+            android:layout_height="26dp"
+            android:layout_gravity="center_vertical"
+            android:background="@drawable/shimmer_bg_rounded_corners20" />
+
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/d_0.5dp"
+        android:layout_marginLeft="@dimen/d_15dp"
+        android:layout_marginTop="@dimen/d_20dp"
+        android:layout_marginRight="@dimen/d_15dp"
+        android:background="@color/shimmer_background_color" />
+
+</LinearLayout>

+ 53 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/adapter/BannerGlobalAdapter.kt

@@ -0,0 +1,53 @@
+package com.guadou.cs_cptservices.adapter
+
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.recyclerview.widget.RecyclerView
+import com.guadou.lib_baselib.engine.extLoad
+import com.guadou.lib_baselib.engine.extLoadGif
+import com.guadou.lib_baselib.ext.checkExtEmpty
+import com.youth.banner.adapter.BannerAdapter
+
+/**
+ * Banner库2.0版本 全局的默认的适配器
+ */
+class BannerGlobalAdapter : BannerAdapter<String?, BannerGlobalAdapter.ImageHolder> {
+
+    var mPlaceHolderRes = 0
+
+    constructor(datas: List<String?>) : super(datas)
+
+    constructor(datas: List<String?>, placeHolderRes: Int) : super(datas) {
+        mPlaceHolderRes = placeHolderRes
+    }
+
+    override fun onCreateHolder(parent: ViewGroup, viewType: Int): ImageHolder {
+        val imageView = ImageView(parent.context)
+        val layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
+        imageView.layoutParams = layoutParams
+        imageView.scaleType = ImageView.ScaleType.CENTER_CROP
+        return ImageHolder(imageView)
+    }
+
+    override fun onBindView(holder: ImageHolder?, data: String?, position: Int, size: Int) {
+        //如果是GIF使用GIF库加载
+        data.checkExtEmpty({
+            if (!it.endsWith(".gif")) {
+                holder?.mImageView?.extLoad(data, mPlaceHolderRes)
+            } else {
+                holder?.mImageView?.extLoadGif(data, mPlaceHolderRes)
+            }
+        }
+        )
+    }
+
+
+    class ImageHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+
+        var mImageView: ImageView = itemView as ImageView
+
+    }
+
+
+}

+ 78 - 0
cs_cptServices/src/main/java/com/guadou/cs_cptservices/adapter/BannerRectangleCircleIndicator.java

@@ -0,0 +1,78 @@
+package com.guadou.cs_cptservices.adapter;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.RectF;
+import android.util.AttributeSet;
+
+import com.youth.banner.indicator.BaseIndicator;
+
+/**
+ * 选中的是矩形-未选中的是圆形
+ */
+public class BannerRectangleCircleIndicator extends BaseIndicator {
+    RectF rectF;
+
+    public BannerRectangleCircleIndicator(Context context) {
+        this(context, null);
+    }
+
+    public BannerRectangleCircleIndicator(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public BannerRectangleCircleIndicator(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        rectF = new RectF();
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+        int count = config.getIndicatorSize();
+        if (count <= 1) {
+            return;
+        }
+        //间距*(总数-1)+默认宽度*(总数-1)+选中宽度
+        int space = config.getIndicatorSpace() * (count - 1);
+        int normal = config.getNormalWidth() * (count - 1);
+
+        int width = space + normal + config.getSelectedWidth();
+        setMeasuredDimension(width, Math.max(config.getNormalWidth(), config.getSelectedWidth()));
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        super.onDraw(canvas);
+        int count = config.getIndicatorSize();
+        if (count <= 1) {
+            return;
+        }
+        float left = 0;
+        for (int i = 0; i < count; i++) {
+
+            if (config.getCurrentPosition() == i) {
+                //选中
+                mPaint.setColor(config.getSelectedColor());
+
+                int circleWidth = config.getNormalWidth();
+                int indicatorWidth = config.getSelectedWidth();
+                int top = circleWidth / 2 - config.getHeight() / 2;
+                rectF.set(left, top, left + indicatorWidth, top + config.getHeight());
+                left += indicatorWidth + config.getIndicatorSpace();
+                canvas.drawRoundRect(rectF, config.getRadius(), config.getRadius(), mPaint);
+
+            } else {
+                //未选中
+                mPaint.setColor(config.getNormalColor());
+                int indicatorWidth = config.getNormalWidth();
+
+                int radius = indicatorWidth / 2;
+                canvas.drawCircle(left + radius, radius, radius, mPaint);
+                left += indicatorWidth + config.getIndicatorSpace();
+            }
+
+        }
+    }
+
+}