Skip to content

Commit

Permalink
Optimized AdapterFragmentPager.kt
Browse files Browse the repository at this point in the history
  • Loading branch information
zhpanvip committed Mar 17, 2021
1 parent b114c05 commit c765af3
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 59 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -14,71 +13,24 @@ 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 {
return 4
}

companion object {

const val PAGE_HOME = 0

const val PAGE_FIND = 1

const val PAGE_INDICATOR = 2

const val PAGE_OTHERS = 3

}

}

0 comments on commit c765af3

Please sign in to comment.