gpt4 book ai didi

java - 单击时旋转 ImageView 属于 RecyclerView

转载 作者:行者123 更新时间:2023-12-01 16:58:46 27 4
gpt4 key购买 nike

注意:我在编写问题时解决了问题,因此不需要答案。仍然与答案分享,以便有相同经历的人可以从中受益。

我有一个回收器 View ,其中包含图像和 2 个 TextView 。我想在单击图像时旋转图像,但发生了一些奇怪的事情:

有时,图像不会旋转。有时,我看到一些图像旋转,即使我没有点击它们。

onClickListener 的代码:

arrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showAnswer(getAdapterPosition(), arrow);
}
});

它调用的方法:

private void showAnswer(int adapterPosition, ImageView arrow){
Info info = infoList.get(adapterPosition);
info.setExpanded(!info.isExpanded());
if(!info.isExpanded()){
arrow.setRotation(90);
}
else{
arrow.setRotation(0);
}
notifyItemChanged(adapterPosition);
}

请注意,我还同时更改了其中一个 TextView 的可见性,效果非常好。

最佳答案

我在编写问题的“我还更改了其中一个 TextView 的可见性”部分时发现了错误。我哪里改了?不在 onClickListener 中。它在 onBindViewHolder 方法中。因此,从 onClick 中删除 if-else 语句并在以下方法中添加最后一行解决了我的问题:

@Override
public void onBindViewHolder(@NonNull RuleViewHolder holder, int position) {
Info info = infoList.get(position);
holder.questionTextView.setText(info.getQuestion());
holder.answerTextView.setText(info.getAnswer());

boolean isExpanded = infoList.get(position).isExpanded();
holder.expandableLayout.setVisibility(isExpanded ? View.VISIBLE : View.GONE);
holder.arrow.setRotation(isExpanded ? 90 : 0);
}

关于java - 单击时旋转 ImageView 属于 RecyclerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61545998/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com