如何解决如何滚动到 AlertDialog
我可以成功显示带有列表的警报对话框。 我想要实现的是滚动到此列表的特定位置。有没有办法做到这一点? 下面是代码
fun createAlert(activity: Activity,mandatory: Boolean,provinceSelected: (Int) -> Unit) {
val provinceDialog: AlertDialog.Builder = AlertDialog.Builder(activity)
provinceDialog.setTitle(activity.getString(R.string.select_province_from_list))
provinceDialog.setCancelable(!mandatory)
val arrayAdapter = ArrayAdapter<String>(activity,R.layout.province_list_row_item,SubAdministrativeAreas.provincesList)
provinceDialog.setAdapter(arrayAdapter
) { _,positionSelected ->
provinceSelected(positionSelected)
}
/**
* Here I should move to an adapter position
*/
provinceDialog.show()
}
解决方法
您可以使用 AlertDialog
获取列表,显示后您可以滚动到某个位置。
试试这个应该可以的。
fun createAlert(activity: Activity,mandatory: Boolean,provinceSelected: (Int) -> Unit) {
val provinceDialog: AlertDialog.Builder = AlertDialog.Builder(activity)
provinceDialog.setTitle(activity.getString(R.string.select_province_from_list))
provinceDialog.setCancelable(!mandatory)
val arrayAdapter = ArrayAdapter<String>(activity,R.layout.province_list_row_item,SubAdministrativeAreas.provincesList)
provinceDialog.setAdapter(arrayAdapter
) { _,positionSelected ->
provinceSelected(positionSelected)
}
val dialog = provinceDialog.create()
dialog.setOnShowListener {
dialog.listView.smoothScrollToPosition(11)
}
dialog.show()
}
,
您可以通过 AlertDialog.getListView()
检索 ListView
使用的 AlertDialog
。
然后有一些简单的方法可以以编程方式滚动列表,这篇文章似乎涵盖了它 - Programmatically scroll to a specific position in an Android ListView。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。