11package com.cxz.wanandroid.ui.activity
22
33import android.content.Intent
4+ import android.content.res.ColorStateList
45import android.support.design.widget.TabLayout
56import android.view.Menu
67import android.view.MenuItem
8+ import android.view.View
79import com.cxz.wanandroid.R
810import com.cxz.wanandroid.adapter.KnowledgePagerAdapter
911import com.cxz.wanandroid.base.BaseSwipeBackActivity
1012import com.cxz.wanandroid.constant.Constant
1113import com.cxz.wanandroid.event.ColorEvent
1214import com.cxz.wanandroid.mvp.model.bean.Knowledge
1315import com.cxz.wanandroid.mvp.model.bean.KnowledgeTreeBody
16+ import com.cxz.wanandroid.ui.fragment.KnowledgeFragment
1417import com.cxz.wanandroid.utils.SettingUtil
1518import kotlinx.android.synthetic.main.activity_knowledge.*
1619import org.greenrobot.eventbus.Subscribe
@@ -38,9 +41,9 @@ class KnowledgeActivity : BaseSwipeBackActivity() {
3841 override fun attachLayoutRes (): Int = R .layout.activity_knowledge
3942
4043 override fun initData () {
41- intent.extras.let {
42- toolbarTitle = it.getString(Constant .CONTENT_TITLE_KEY )
43- it.getSerializable(Constant .CONTENT_DATA_KEY ).let {
44+ intent.extras? .let {
45+ toolbarTitle = it.getString(Constant .CONTENT_TITLE_KEY ) ? : " "
46+ it.getSerializable(Constant .CONTENT_DATA_KEY )? .let {
4447 val data = it as KnowledgeTreeBody
4548 data.children.let { children ->
4649 knowledges.addAll(children)
@@ -69,6 +72,9 @@ class KnowledgeActivity : BaseSwipeBackActivity() {
6972 addOnTabSelectedListener(TabLayout .ViewPagerOnTabSelectedListener (viewPager))
7073 addOnTabSelectedListener(onTabSelectedListener)
7174 }
75+ floating_action_btn.run {
76+ setOnClickListener(onFABClickListener)
77+ }
7278
7379 }
7480
@@ -85,6 +91,7 @@ class KnowledgeActivity : BaseSwipeBackActivity() {
8591 if (event.isRefresh) {
8692 if (! SettingUtil .getIsNightMode()) {
8793 tabLayout.setBackgroundColor(SettingUtil .getColor())
94+ floating_action_btn.backgroundTintList = ColorStateList .valueOf(mThemeColor)
8895 }
8996 }
9097 }
@@ -101,8 +108,21 @@ class KnowledgeActivity : BaseSwipeBackActivity() {
101108
102109 override fun onTabSelected (tab : TabLayout .Tab ? ) {
103110 // 默认切换的时候,会有一个过渡动画,设为false后,取消动画,直接显示
104- viewPager.setCurrentItem(tab?.position!! , false )
111+ tab?.let {
112+ viewPager.setCurrentItem(it.position, false )
113+ }
114+ }
115+ }
116+
117+ /* *
118+ * FAB 监听
119+ */
120+ private val onFABClickListener = View .OnClickListener {
121+ if (viewPagerAdapter.count == 0 ) {
122+ return @OnClickListener
105123 }
124+ val fragment: KnowledgeFragment = viewPagerAdapter.getItem(viewPager.currentItem) as KnowledgeFragment
125+ fragment.scrollToTop()
106126 }
107127
108128 override fun onCreateOptionsMenu (menu : Menu ? ): Boolean {
0 commit comments