| | |
| | | package com.dayu.general.activity |
| | | |
| | | import android.os.Bundle |
| | | import android.view.LayoutInflater |
| | | import androidx.core.content.ContextCompat |
| | | import androidx.fragment.app.Fragment |
| | | import com.dayu.general.R |
| | | import com.dayu.general.adapter.TabAdapter |
| | | import com.dayu.general.databinding.ActivityMainBinding |
| | | |
| | | class MainActivity : BaseActivity(){ |
| | | class MainActivity : BaseActivity() { |
| | | |
| | | |
| | | var binding: ActivityMainBinding? = null |
| | | private val fragments: ArrayList<Fragment> = ArrayList() |
| | | override fun onCreate(savedInstanceState: Bundle?) { |
| | | super.onCreate(savedInstanceState) |
| | | setupFragments(); |
| | | binding = ActivityMainBinding.inflate(LayoutInflater.from(this)) |
| | | setContentView(binding?.root) |
| | | setupFragments() |
| | | initView() |
| | | initTab() |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | private fun initView() { |
| | | binding!!.BSCardLL.setOnClickListener { v -> changeBottomState(Tab.BSC) } |
| | | binding!!.rechargeLL.setOnClickListener { v -> changeBottomState(Tab.RECHARGE) } |
| | | binding!!.myLL.setOnClickListener { v -> changeBottomState(Tab.MY) } |
| | | } |
| | | |
| | | |
| | | private fun setupFragments() { |
| | | fragments.add(BSCardFragment()) |
| | | fragments.add(RechargeFragment()) |
| | | fragments.add(BSCardFragment()) |
| | | fragments.add(MyFragment()) |
| | | } |
| | | |
| | | private fun initTab() { |
| | | binding?.viewPager?.adapter = TabAdapter(this, fragments) |
| | | binding?.viewPager?.currentItem = (1) |
| | | binding?.viewPager?.offscreenPageLimit = 3 |
| | | binding?.viewPager?.isUserInputEnabled = false |
| | | } |
| | | |
| | | private enum class Tab { |
| | | BSC, RECHARGE, MY |
| | | } |
| | | |
| | | /** |
| | | * 修改底部状态 |
| | | */ |
| | | private fun changeBottomState(tab: Tab) { |
| | | resetTabState() |
| | | when (tab) { |
| | | Tab.BSC -> updateTabUI(0, R.drawable.bottom_card_white, R.color.white) |
| | | Tab.RECHARGE -> updateTabUI(1, R.drawable.bottom_recharge_white, R.color.white) |
| | | Tab.MY -> updateTabUI(2, R.drawable.bottom_my_white, R.color.white) |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 重置所有 Tab 的默认状态 |
| | | */ |
| | | private fun resetTabState() { |
| | | binding!!.BSCardImg.setImageDrawable( |
| | | ContextCompat.getDrawable( |
| | | this, |
| | | R.drawable.bottom_card_black |
| | | ) |
| | | ) |
| | | binding!!.BSCardText.setTextColor(ContextCompat.getColor(this, R.color.black)) |
| | | |
| | | binding!!.rechargeImg.setImageDrawable( |
| | | ContextCompat.getDrawable( |
| | | this, |
| | | R.drawable.bottom_recharge_black |
| | | ) |
| | | ) |
| | | binding!!.rechargeText.setTextColor(ContextCompat.getColor(this, R.color.black)) |
| | | |
| | | binding!!.myImg.setImageDrawable( |
| | | ContextCompat.getDrawable( |
| | | this, |
| | | R.drawable.bottom_my_black |
| | | ) |
| | | ) |
| | | binding!!.myText.setTextColor(ContextCompat.getColor(this, R.color.black)) |
| | | } |
| | | |
| | | /** |
| | | * 更新某个 Tab 的 UI 状态 |
| | | */ |
| | | private fun updateTabUI(position: Int, iconResId: Int, textColorResId: Int) { |
| | | if (position == 1) { |
| | | binding!!.viewPager.setCurrentItem(position, true) |
| | | } else { |
| | | binding!!.viewPager.setCurrentItem(position, false) |
| | | } |
| | | when (position) { |
| | | 0 -> { |
| | | binding!!.BSCardImg.setImageDrawable(ContextCompat.getDrawable(this, iconResId)) |
| | | binding!!.BSCardText.setTextColor(ContextCompat.getColor(this, textColorResId)) |
| | | } |
| | | |
| | | 1 -> { |
| | | binding!!.rechargeImg.setImageDrawable(ContextCompat.getDrawable(this, iconResId)) |
| | | binding!!.rechargeText.setTextColor(ContextCompat.getColor(this, textColorResId)) |
| | | } |
| | | |
| | | 2 -> { |
| | | binding!!.myImg.setImageDrawable(ContextCompat.getDrawable(this, iconResId)) |
| | | binding!!.myText.setTextColor(ContextCompat.getColor(this, textColorResId)) |
| | | } |
| | | } |
| | | } |
| | | } |