直播系统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 (点击展示选项)使用方法, 更多内容欢迎关注之后的文章