android - 微调器下拉高度第一次
问题描述
我使用微调器来制作国旗的下拉列表。但是如图所示,下拉高度在第一次时并不正确,但是当我开始在下拉列表中滚动或关闭它并再次打开它时,它会自行纠正。
我为微调器使用了自定义适配器
class CustomAdapter(context: AppCompatActivity, resouceId: Int, val list: List<DirectoryResponse>) : ArrayAdapter<DirectoryResponse>(context, resouceId, list) {
private var inflater: LayoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
//TODO : Recycle the view
val rowItem = getItem(position)
val rowview = inflater.inflate(R.layout.flag_spinner, parent, false)
val imageView = rowview.findViewById(R.id.flag_image) as ImageView
val padding = dpToPx(6).toInt()
imageView.setPadding(padding, padding, padding, padding)
val imageSize = dpToPx(36).toInt()
GlideApp.with(context)
.load(rowItem.FlagUrl)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.override(imageSize)
.into(imageView)
return rowview
}
override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup?): View {
return getView(position, convertView, parent)
}
}
flag_spinner.xml
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/flag_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal"
android:scaleType="fitCenter"
tools:src="@drawable/ic_flag">
</ImageView>
SignInActivity.kt 中的部分
val adapter = CustomAdapter(this, R.layout.flag_spinner, it)
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
flag_spinner.adapter = adapter
解决方案
由于您无法轻松设置下拉高度,我相信它没有正确显示,因为第一次打开它时没有加载图像。
尝试将ImageView
尺寸从wrap_content
固定的宽度和高度更改。例如:
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/flag_image"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal"
android:scaleType="fitCenter"
tools:src="@drawable/ic_flag"/>
推荐阅读
- python - 为什么我的 Python 蓝牙服务器/客户端会收到“主机已关闭”
- python - 如何使用数组从 Gekko 应用 m.connection?
- protocol-buffers - 您可以为重复的 Protobuf 消息中的一个字段分配多个不同的值类型吗?
- asp.net - 即使选项在防火墙设置中设置为 yes,Azure SQL Server 防火墙也不允许操作连接
- javascript - 代码:'Neo.ClientError.Security.Unauthorized'
- sql - 从多个表中查找重复行
- swift - SwiftUI 发出警报
- c# - ConvertEmptyStringToNull 不起作用 .net 核心 Blazor 项目
- javascript - “原始”参数必须是函数类型
- python - Levenshtein 距离给出奇怪的值