如何解决水平显示微调器项目
是否可以水平显示Spinner
项或显示为网格?一只手很难到达屏幕顶部。
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)
}
}
解决方法
我相信这就是您要寻找的:HorizontalSpinner. java
注意。这样会创建所有创建视图(不回收),因此较大的列表很可能需要使用视图回收的解决方案。
但是,自己Codelab by Google on Custom Views创建一个简单的自定义视图实际上并没有那么复杂(可能是一个有趣的话题)。在这种情况下,您可以继承RecyclerView并自己创建性能良好的水平微调器(然后将其作为库发布以与世界共享:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。