core_layout_more_list_3
core_layout_more_list_2
class MainActivity : AppCompatActivity() {private lateinit var popWindow: PopWindowManageroverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)initView()}private var oneIndex = 0private var oneData: MoreListBean? = nullprivate var twoIndex = 0private var twoData: MoreListBean? = nullprivate var treeIndex = 0private var treeData: MoreListBean? = nullprivate fun initView() {val zoneView = LayoutInflater.from(this).inflate(R.layout.core_layout_more_list_3, null, false)popWindow = PopWindowManager(this, zoneView, From.TOP, 300)val listViewOne = zoneView.findViewById<RecyclerView>(R.id.more_list_one)val listViewTwo = zoneView.findViewById<RecyclerView>(R.id.more_list_two)val listViewTree = zoneView.findViewById<RecyclerView>(R.id.more_list_tree)listViewOne.layoutManager = LinearLayoutManager(this)listViewTwo.layoutManager = LinearLayoutManager(this)listViewTree.layoutManager = LinearLayoutManager(this)val oneAdapter = MoreListAdapter(this, TYPE_One, true)val twoAdapter = MoreListAdapter(this, TYPE_Two, true)val treeAdapter = MoreListAdapter(this, TYPE_Tree, true)listViewOne.adapter = oneAdapterlistViewTwo.adapter = twoAdapterlistViewTree.adapter = treeAdapteroneAdapter.setMoreListListener { i, data ->oneIndex = ioneData = datatwoIndex = 0twoData = nulltreeIndex = 0treeData = nulltwoAdapter.clear()treeAdapter.clear()// 获取网络数据// 设置第二级的数据if (data.title != "全部") {val datas = getTwoData(data.title)datas.add(0, MoreListBean("全部"))twoAdapter.setData(datas)}}twoAdapter.setMoreListListener { i, data ->twoIndex = itwoData = datatreeIndex = 0treeData = nulltreeAdapter.clear()// 获取网络数据// 设置第三级的数据if (data.title != "全部") treeAdapter.setData(getTreeData(data.title))}treeAdapter.setMoreListListener { i, data ->treeIndex = itreeData = data// 获取网络数据}// 设置第一级的数据oneAdapter.setData(getOneData().apply {add(0, MoreListBean("全部"))})tv.setOnClickListener {oneAdapter.setCurrent(oneIndex)twoAdapter.setCurrent(twoIndex)treeAdapter.setCurrent(treeIndex)popWindow.setAnchorView(it)popWindow.show()}}private fun getOneData(): ArrayList<MoreListBean> {return ArrayList<MoreListBean>().apply {repeat(10) {add(MoreListBean("第一级${it}"))}}}private fun getTwoData(titie: String): ArrayList<MoreListBean> {return ArrayList<MoreListBean>().apply {repeat(10) {add(MoreListBean("第二级${titie}-${it}"))}}}private fun getTreeData(title: String): ArrayList<MoreListBean> {return ArrayList<MoreListBean>().apply {repeat(10) {add(MoreListBean("第三级${title}-${it}"))}}}}
