直播系统app源码,Spinner (点击展示选项)使用方法

直播系统app源码,Spinner (点击展示选项)使用方法

package com.example.cardwithviewpager2
 
import android.view.View
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.Spinner
import androidx.viewpager2.widget.ViewPager2
 
/**
 * 配置spinner显示方向选项,并设置ViewPager2的方方向 (持有Spinner 和 ViewPager2对象,相当于委托管理)
 */
class OrientationController(private val viewPager: ViewPager2, private val spinner: Spinner) {
 
    fun setup(){
        val orientation = viewPager.orientation
        val adapter = ArrayAdapter(spinner.context, android.R.layout.simple_spinner_item,
            arrayOf(HORIZONTAL, VERTICAL))
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
        spinner.adapter = adapter
        
        val initialPosition = adapter.getPosition(orientationToString(orientation))
        if (initialPosition >= 0) {
            spinner.setSelection(initialPosition)
        }
 
        spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
            override fun onItemSelected(
                parent: AdapterView<*>,
                view: View?,
                position: Int,
                id: Long
            ) {
                viewPager.orientation = stringToOrientation(parent.selectedItem.toString())
            }
 
            override fun onNothingSelected(parent: AdapterView<*>?) {
                TODO("Not yet implemented")
            }
 
        }
    }
 
    private fun stringToOrientation(orientation: String): Int {
        return when(orientation) {
            HORIZONTAL -> ViewPager2.ORIENTATION_HORIZONTAL
            VERTICAL -> ViewPager2.ORIENTATION_VERTICAL
            else -> throw  IllegalAccessException("orientation $orientation doesn't exit")
        }
    }
 
    private fun orientationToString(orientation: Int): String {
       return when(orientation) {
           ViewPager2.ORIENTATION_HORIZONTAL -> HORIZONTAL
           ViewPager2.ORIENTATION_VERTICAL -> VERTICAL
           else -> throw  IllegalAccessException("orientation $orientation doesn't exit")
       }
    }
 
    companion object{
        const val HORIZONTAL = "Horizontal"
        const val VERTICAL = "Vertical"
    }
}

​以上就是直播系统app源码,Spinner (点击展示选项)使用方法, 更多内容欢迎关注之后的文章

 

posted @ 2022-08-30 14:16  云豹科技-苏凌霄  阅读(85)  评论(0)    收藏  举报