在spinner
中使用recyclerview
小部件时,我遇到了一个奇怪的问题。所以故事是这样的,我有一个recyclerview
,它有一个微调器,我传递的列表需要从片段膨胀到我创建recyclereview
的{{1}},如果数据是不为null并将其设置为微调器,但它有时有效,大多数时候没有。它也适用于获得焦点或在其下方输入编辑文本。
注意:我已经检查了与此相关的其他问题,是的我使用的是带有黑色文本颜色布局的白色背景,这基本上是微调器的自定义布局。我很难搞清楚发生了什么。
这是我在adapter
onBindViewHolder()
}
spinner @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);
}
}
onItemSelectedListener()
以下是正在发生的事情的快照。
这是我从微调器中选择项目
这是在从微调器中选择一个项目之后。
如果需要更多代码,请告诉我。
答案 0 :(得分:0)
我相信这是因为编辑文本仍然具有焦点而不是微调器。尝试这样的事情。
spinner.setFocusableInTouchMode(true);
spinner.setOnFocusChangeListener((v, hasFocus) -> {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
if (spinner.getWindowToken() != null) {
spinner.performClick();
}
}
}
});