[在spinner
中使用recyclerview
小部件时,我遇到了一个奇怪的问题。所以这个故事是这样的,我有一个带有旋转器的recyclerview
,我正在传递列表,该列表需要从片段扩展到recyclereview
,如果数据不为空,则在其中创建adapter
并将其设置为微调器,但有时有时却不起作用。当获得焦点或在其下方输入编辑文本时,它也适用。
注:我已经检查了与此相关的其他问题,是的,我正在使用白色背景和黑色文本颜色布局,这基本上是微调器的自定义布局。我很难弄清楚发生了什么。
这是我在onBindViewHolder()
中设置微调器的代码
@Override
public void onBindViewHolder(FamilyMemberAdapter.ViewHolder holder, int position) {
FamilyMemberRecyclerViewModel familyMemberModel = familyMemberRecyclerViewModelList.get(holder.getAdapterPosition());
if (familyMemberModel.getRelationTypeModelList()!=null){
relationTypeModelArrayAdapter = new ArrayAdapter<RelationTypeModel>(context,R.layout.item_spinner,familyMemberModel.getRelationTypeModelList());
holder.spnRelationType.setAdapter(relationTypeModelArrayAdapter);
if (familyMemberModel.getRelationTypeAdapterModel()!=null){
int positionRelation = relationTypeModelArrayAdapter.getPosition(familyMemberModel.getRelationTypeAdapterModel());
holder.spnRelationType.setSelection(positionRelation);
}
}
}
spinner onItemSelectedListener()
spnRelationType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
//here differentiate between different doc and relation
uploadDocumentItemsClickListener.onSpinnerChangeListener(spnRelationType,getAdapterPosition(),adapterView.getSelectedItemPosition());
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
这里是正在发生的情况的快照。
这是我正在从微调器中选择项目
这是从微调器中选择一个项目之后。
请让我知道是否需要更多代码。
我相信这是因为编辑文本仍然具有焦点而不是微调框。尝试这样的事情。
spinner.setFocusableInTouchMode(true);
spinner.setOnFocusChangeListener((v, hasFocus) -> {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
if (spinner.getWindowToken() != null) {
spinner.performClick();
}
}
}
});