Android 水平显示微调器项

Android 水平显示微调器项,android,kotlin,android-spinner,Android,Kotlin,Android Spinner,是否可以水平或以网格形式显示微调器项?用一只手很难到达屏幕的顶部 class MainActivity : AppCompatActivity() { private lateinit var adapterPlaces: AdapterPlaces private lateinit var adapterAlphabet: AdapterAlphabet private val arrayItemsPlaces = ArrayList<ItemPlaces>

是否可以水平或以网格形式显示
微调器
项?用一只手很难到达屏幕的顶部

class MainActivity : AppCompatActivity() {
    private lateinit var adapterPlaces: AdapterPlaces
    private lateinit var adapterAlphabet: AdapterAlphabet
    private val arrayItemsPlaces = ArrayList<ItemPlaces>()
    var list_of_items = arrayOf("A", "G", "H", "J", "S", "T", "V", "W")

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val mToolbar = findViewById<Toolbar>(R.id.myToolbar)
        val mRecyclerViewV = findViewById<RecyclerView>(R.id.mRecyclerViewWithToolbarV)
        val mSpinner = findViewById<Spinner>(R.id.mSpinner)

        // ...Do other stuff here
        setSupportActionBar(mToolbar)

        val mTitle = findViewById<TextView>(R.id.myToolbar_title)
        mTitle.text = "App"

        arrayItemsPlaces.add(
                ItemPlaces(
                        getString(R.string.atlantic_avenue_barclays_center)
                )
        )
        arrayItemsPlaces.add(
                ItemPlaces(
                        getString(R.string.grand_central_42nd_street)
                )
        )
        arrayItemsPlaces.add(
                ItemPlaces(
                        getString(R.string.howard_beach_jfk_airport)
                )
        )
        arrayItemsPlaces.add(
                ItemPlaces(
                        getString(R.string.jackson_heights_roosevelt_avenue_74th_street)
                )
        )
        arrayItemsPlaces.add(
                ItemPlaces(
                        getString(R.string.south_ferry_whitehall_street)
                )
        )
        arrayItemsPlaces.add(
                ItemPlaces(
                        getString(R.string.sutphin_boulevard_archer_avenue_jfk_airport)
                )
        )
        arrayItemsPlaces.add(
                ItemPlaces(
                        getString(R.string.times_square_42nd_street_port_authority_bus_terminal)
                )
        )
        arrayItemsPlaces.add(
                ItemPlaces(
                        getString(R.string.van_cortlandt_park_242nd_street)
                )
        )
        arrayItemsPlaces.add(
                ItemPlaces(
                        getString(R.string.west_farms_square_east_tremont_avenue)
                )
        )

        // Set Vertical RecyclerView
            mRecyclerViewV.layoutManager =
                    LinearLayoutManager(this)

            val mListener = AdapterView.OnItemClickListener { _, _, _, _ -> }
            adapterPlaces = AdapterPlaces(arrayItemsPlaces, mListener)

            mRecyclerViewV.addItemDecoration(
                    androidx.recyclerview.widget.DividerItemDecoration(
                            this,
                            LinearLayout.VERTICAL
                    )
            )
            mRecyclerViewV.adapter = adapterPlaces

        val mListener = AdapterView.OnItemClickListener { _, _, _, _ -> }
        adapterAlphabet = AdapterAlphabet(arrayItemsBtns, mListener)

        // Set spinner items
        val aa = ArrayAdapter(this, android.R.layout.select_dialog_item, list_of_items)
        aa.setDropDownViewResource(android.R.layout.select_dialog_item)
        mSpinner!!.setAdapter(aa)
    }
}
class MainActivity:AppCompatActivity(){
私有lateinit var adapterPlaces:adapterPlaces
私有lateinit变量AdapterPhabet:AdapterPhabet
private val arrayItemsPlaces=ArrayList()
var项目列表=排列(“A”、“G”、“H”、“J”、“S”、“T”、“V”、“W”)
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val mToolbar=findviewbyd(R.id.myToolbar)
val mrecyclervewv=findviewbyd(R.id.mrecyclervewithtoolbarv)
val mSpinner=findviewbyd(R.id.mSpinner)
//…在这里做其他事情
设置支持操作栏(mToolbar)
val mTitle=findviewbyd(R.id.myToolbar\u标题)
mTitle.text=“应用程序”
arrayItemsPlaces.add(
项目地点(
getString(R.string.大西洋大道巴克莱中心)
)
)
arrayItemsPlaces.add(
项目地点(
getString(R.string.格兰杜中心42街)
)
)
arrayItemsPlaces.add(
项目地点(
getString(R.string.howard_beach_jfk_机场)
)
)
arrayItemsPlaces.add(
项目地点(
getString(R.string.杰克森·伍兹·罗斯福·伍兹大道·伍兹街74号)
)
)
arrayItemsPlaces.add(
项目地点(
getString(右弦,南码头、白厅街)
)
)
arrayItemsPlaces.add(
项目地点(
getString(R.string.sutphin_大道、阿彻大道、肯尼迪机场)
)
)
arrayItemsPlaces.add(
项目地点(
getString(R.string.times\u square\u 42nd\u street\u port\u authority\u bus\u terminal)
)
)
arrayItemsPlaces.add(
项目地点(
getString(R.string.van_cortlandt_park_242_street)
)
)
arrayItemsPlaces.add(
项目地点(
getString(右弦,西农场广场东特雷蒙大道)
)
)
//设置垂直回收视图
mrecyclerv.layoutManager=
直线布局经理(本)
val mListener=AdapterView.OnItemClickListener{{{{,{,},{,}
adapterPlaces=适配器位置(阵列项目空间,mListener)
mRecyclerViewV.ADDITEM装饰(
androidx.recyclerview.widget.DividerItemDecoration(
这
直线布局
)
)
mrecycerviewv.adapter=适配器位置
val mListener=AdapterView.OnItemClickListener{{{{,{,},{,}
adapterAlphabet=adapterAlphabet(arrayItemsBtns,mListener)
//设置微调器项
val aa=ArrayAdapter(这是android.R.layout.select_对话框_项,列表_项)
aa.setDropDownViewResource(android.R.layout.select_对话框_项)
mSpinner!!.setAdapter(aa)
}
}

我相信这就是你想要的:

注意。这将创建创建时的所有视图(无循环),因此较大的列表很可能需要具有视图循环的解决方案

然而,自己创建一个简单的自定义视图并不是那么复杂(而且可能是一个有趣的话题)。在这种情况下,您可以从RecyclerView继承并自己创建一个性能良好的水平微调器(然后将其作为库发布以与世界共享:)