Browse Source

Optimized AdapterFragmentPager.kt

zhpanvip 4 years ago
parent
commit
c765af3ee4

+ 0 - 5
app/src/main/java/com/example/zhpan/banner/activity/MainActivity.kt

@@ -23,11 +23,6 @@ class MainActivity : AppCompatActivity() {
         setListener()
     }
 
-    override fun onWindowFocusChanged(hasFocus: Boolean) {
-        super.onWindowFocusChanged(hasFocus)
-//        Debug.stopMethodTracing()
-    }
-
     private fun initView() {
         toolbar.apply {
             title = getString(R.string.app_name)

+ 6 - 54
app/src/main/java/com/example/zhpan/banner/adapter/others/AdapterFragmentPager.kt

@@ -1,6 +1,5 @@
 package com.example.zhpan.banner.adapter.others
 
-import android.util.SparseArray
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.FragmentActivity
 import androidx.viewpager2.adapter.FragmentStateAdapter
@@ -14,55 +13,14 @@ import com.example.zhpan.banner.fragment.*
  */
 class AdapterFragmentPager(fragmentActivity: FragmentActivity) : FragmentStateAdapter(fragmentActivity) {
 
-    private val fragments: SparseArray<BaseFragment> = SparseArray()
-
     override fun createFragment(position: Int): Fragment {
-        var fragment: Fragment
-        when (position) {
-            PAGE_HOME -> {
-                if (fragments.get(PAGE_HOME) == null) {
-                    fragment = HomeFragment.getInstance();
-                    fragments.put(PAGE_HOME, fragment)
-                } else {
-                    fragment = fragments.get(PAGE_HOME)
-                }
-            }
-            PAGE_FIND -> {
-                if (fragments.get(PAGE_FIND) == null) {
-                    fragment = PageFragment.getInstance();
-                    fragments.put(PAGE_FIND, fragment)
-                } else {
-                    fragment = fragments.get(PAGE_FIND)
-                }
-            }
-
-            PAGE_INDICATOR -> {
-                if (fragments.get(PAGE_INDICATOR) == null) {
-                    fragment = IndicatorFragment.getInstance();
-                    fragments.put(PAGE_INDICATOR, fragment)
-                } else {
-                    fragment = fragments.get(PAGE_INDICATOR)
-                }
-            }
-
-            PAGE_OTHERS -> {
-                if (fragments.get(PAGE_OTHERS) == null) {
-                    fragment = OthersFragment.getInstance();
-                    fragments.put(PAGE_OTHERS, fragment)
-                } else {
-                    fragment = fragments.get(PAGE_OTHERS)
-                }
-            }
-            else -> {
-                if (fragments.get(PAGE_HOME) == null) {
-                    fragment = EmptyFragment.getInstance();
-                    fragments.put(PAGE_HOME, fragment)
-                } else {
-                    fragment = fragments.get(PAGE_HOME)
-                }
-            }
+        return when (position) {
+            PAGE_HOME -> HomeFragment.getInstance();
+            PAGE_FIND -> PageFragment.getInstance();
+            PAGE_INDICATOR -> IndicatorFragment.getInstance();
+            PAGE_OTHERS -> OthersFragment.getInstance();
+            else -> EmptyFragment.getInstance();
         }
-        return fragment
     }
 
     override fun getItemCount(): Int {
@@ -70,15 +28,9 @@ class AdapterFragmentPager(fragmentActivity: FragmentActivity) : FragmentStateAd
     }
 
     companion object {
-
         const val PAGE_HOME = 0
-
         const val PAGE_FIND = 1
-
         const val PAGE_INDICATOR = 2
-
         const val PAGE_OTHERS = 3
-
     }
-
 }