私の問題は、RecyclerViewの動作を理解することです。私はRecyclerView
をすべての行で少し複雑な項目にしていますが、主なものはその項目に子があります。ImageView
とLinearLayout
です。 ImageView
を押して、LinearLayout
〜GONE
またはVISIBLE
のVisibility
を設定し、私のImageView
を回転させたいと思います。 android - RecyclerView items:すべての行のビューのプロパティを保存する方法は?
holder.mIVExpandBtn.setOnClickListener(new OnClickListener() {
boolean isOpen = false;
@Override
public void onClick(View v) {
if (isOpen) {
CounterListAdapter.this.notifyItemChanged(position);
holder.mLLDetails.setVisibility(GONE);
holder.mDivider.setVisibility(VISIBLE);
holder.setArrowUp(false);
isOpen = false;
counterItem.setDetailsOpened(false);
} else {
holder.mLLDetails.setVisibility(VISIBLE);
holder.mDivider.setVisibility(GONE);
holder.setArrowUp(true);
isOpen = true;
counterItem.setDetailsOpened(true);
}
}
});
そして、私はここでいくつかの問題を抱えている:私は私の
onBindViewHolder
でこれを実行しようとしました。
- 私はその間違ったを知って、
OnClickListener
内のブール変数を持っているので、それは私が私のLinearLayout
を展開するだけで1時間を変更します。このブール値のグローバル変数を作成した場合、RecyclerViewisOpen = true
のいずれかの行を他の項目に展開すると、ImageViewをクリックすると展開されません。このブール値はどこに配置する必要がありますか? - 2番目の質問 - 画面の回転でRecyclerViewの行の状態を保存するにはどうすればよいですか?たとえば、私の行の1つ、
LinearLayout.setVisibility(VISIBLE)
を変更し、画面の向きを変更して閉じました。あなたの最初の問題のために
'ViewHolder 'クラスでそのボタンを初期化するところです –