老套路看效果图:
说实话这个布局实现的思路太多了,自己写以及第三方都特别多,不过对于初学者还是从一点一滴开始学起比较简单也容易理解。直接上源码吧,我这个是用的最新的AndroidX库和Kotlin写的。
MainActivity.kt
package com.xiayiye.takeout.ui.activity
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import com.xiayiye.takeout.R
import com.xiayiye.takeout.ui.fragment.HomeFragment
import com.xiayiye.takeout.ui.fragment.MoreFragment
import com.xiayiye.takeout.ui.fragment.OrderFragment
import com.xiayiye.takeout.ui.fragment.UserFragment
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
//添加所有页面的fragment
val list = listOf<Fragment>(HomeFragment(), OrderFragment(), UserFragment(), MoreFragment())
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//下面是Kotlin语言查找id的方法
// val mainBottomBar = findViewById<LinearLayout>(R.id.main_bottom_bar)
initBottomBar()
//默认选中第一个
changeIndex(0)
}
private fun initBottomBar() {
for (index in 0 until main_bottom_bar.childCount) {
main_bottom_bar.getChildAt(index).setOnClickListener(object : View.OnClickListener {
override fun o