如何解决spinnerAdapter getView被调用600次以上
我有一个微调器,我为此创建了一个自定义适配器。
现在,我注意到微调器在UI中加载值时冻结。 当我调试它时,我发现在活动开始时,它可以加载14个项目,这很好,但是将它们加载了大约600次。
这是我的代码。
public class CountriesAdapter extends ArrayAdapter<CountriesDTO> {
public CountriesAdapter(Context context,List<CountriesDTO> countriesDTO) {
super(context,R.layout.country_component,countriesDTO);
}
@Override
public View getDropDownView(int position,View convertView,ViewGroup parent) {
return initView(position,convertView,parent);
}
@Override
public View getView(int position,parent);
}
private View initView(int position,ViewGroup parent){
Log.d("ADP_POSITION",String.valueOf(position)); //this line gets printed on logs around 2000 times on activity start
if(convertView == null){
convertView= LayoutInflater.from(getContext()).inflate(R.layout.country_component,parent,false);
}
TextView label = convertView.findViewById(R.id.tvCountry);
ImageView ivFlag = convertView.findViewById(R.id.ivCountryFlag);
CountriesDTO countriesDTO= getItem(position);
label.setText(countriesDTO.getCountryName());
Glide.with(GlobalApplication.Companion.getAppContext())
.load(countriesDTO.getCompleteFlagURL())
.into(ivFlag);
return convertView;
}
}
微调框布局
<Spinner
android:id="@+id/spinner"
android:layout_width="0dp"
android:layout_height="50dp"
android:background="@null"
android:overlapAnchor="false"
app:layout_constraintEnd_toEndOf="parent" />
旋转码:
var spinnerAdapter : CountriesAdapter?= null
spinnerAdapter= CountriesAdapter(activity?.applicationContext,dataList,false)
spinner?.adapter = spinnerAdapter
适配器布局
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="40dp"
android:padding="8dp"
android:background="@color/Black_Color"
>
<TextView
android:id="@+id/tvCountry"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:textStyle="normal" />
<ImageView
android:id="@+id/ivCountryFlag"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginStart="12dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。