recyclerview适配器中有一个按钮,当用户单击该按钮时,我想保持隐藏和显示的布局,现在的问题是,它仅在第二次单击时有效,以下是我的代码
holder.notification_rl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(flag==true)
{
holder.iv_arrow.setImageResource(R.mipmap.down);
holder.notification_iv.setVisibility(View.GONE);
holder.notification_sub_text.setSingleLine(true);
holder.notification_sub_text.setEllipsize(TextUtils.TruncateAt.END);
int n = 1; // the exact number of lines you want to display
holder.notification_sub_text.setLines(n);
flag = false;
}
else if(flag==false)
{
holder.iv_arrow.setImageResource(R.mipmap.up);
holder.notification_sub_text.setVisibility(View.VISIBLE);
holder.notification_iv.setVisibility(View.VISIBLE);
holder.notification_sub_text.setSingleLine(false);
int n = 2; // the exact number of lines you want to display
holder.notification_sub_text.setLines(n);
flag = true;
}
}
});
答案 0 :(得分:0)
不要尝试使用boolean管理可见性。它肯定可以工作,但是会使事情变得更复杂。除此之外,您可以通过更好地检查视图可见性来进行管理。
首先,通过将holder.notification_iv.setVisibility(View.GONE);
放在onBindViewHolder方法中来隐藏子布局,或者也可以通过XML进行管理。
holder.notification_rl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(holder.notification_iv.getVisibility()==View.VISIBLE)
{
holder.iv_arrow.setImageResource(R.mipmap.down);
holder.notification_iv.setVisibility(View.GONE);
holder.notification_sub_text.setSingleLine(true);
holder.notification_sub_text.setEllipsize(TextUtils.TruncateAt.END);
int n = 1; // the exact number of lines you want to display
holder.notification_sub_text.setLines(n);
}
else
{
holder.iv_arrow.setImageResource(R.mipmap.up);
holder.notification_sub_text.setVisibility(View.VISIBLE);
holder.notification_iv.setVisibility(View.VISIBLE);
holder.notification_sub_text.setSingleLine(false);
int n = 2; // the exact number of lines you want to display
holder.notification_sub_text.setLines(n);
}
}
});