最初隐藏的视图布局,然后 onclick 将使视图可见,反之亦然(Android)
Posted
技术标签:
【中文标题】最初隐藏的视图布局,然后 onclick 将使视图可见,反之亦然(Android)【英文标题】:View layout that are initially hidden, then onclick will make view visible, and vice versa(Android) 【发布时间】:2021-01-29 12:22:40 【问题描述】:我有一个最初设置为 GONE expandableLayout.setVisibility(View.GONE);
的约束布局可见性。我想让视图在发出“setOnClickListener”时可见。然后,当用户再次单击布局时,视图将设置为 Gone Again。
public class ViewHolder extends RecyclerView.ViewHolder
TextView mThicc;
ListView listView;
ConstraintLayout expandableLayout;
public ViewHolder(@NonNull View itemView)
super(itemView);
mThicc = itemView.findViewById(R.id.thicc);
listView = itemView.findViewById(R.id.stocklist);
expandableLayout = itemView.findViewById(R.id.expandableLayout);
expandableLayout.setVisibility(View.GONE);
itemView.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
expandableLayout.setVisibility(View.GONE);
);
问题是,当我点击布局时,它不会保持隐藏状态。
【问题讨论】:
【参考方案1】:试试这个:
public class ViewHolder extends RecyclerView.ViewHolder
TextView mThicc;
ListView listView;
ConstraintLayout expandableLayout;
public ViewHolder(@NonNull View itemView)
super(itemView);
mThicc = itemView.findViewById(R.id.thicc);
listView = itemView.findViewById(R.id.stocklist);
expandableLayout = itemView.findViewById(R.id.expandableLayout);
expandableLayout.setVisibility(View.GONE);
itemView.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View view)
int visibility = expandableLayout.getVisibility() == View.GONE ? View.VISIBLE : View.GONE;
expandableLayout.setVisibility(visibility);
);
但我不推荐这种方法,因为如果 ViewHolder 被回收,它将失去其visibility
状态。您需要保持列表项的可见性。
【讨论】:
【参考方案2】:尝试进行调节并检查按钮单击时视图是否可见或消失
if(expandableLayout.getVisibility==View.GONE)
expandableLayout.setVisibility(View.VISIBLE);
else
expandableLayout.setVisibility(View.GONE);
【讨论】:
这个帮助很大。由于我从 firebase 提取数据,我只需要调用“notifyItemChanged(getAdapterPosition())”,它的工作原理就像魅力以上是关于最初隐藏的视图布局,然后 onclick 将使视图可见,反之亦然(Android)的主要内容,如果未能解决你的问题,请参考以下文章
ios自动布局视觉格式设置子视图与父视图大小相同,但垂直偏移
在 UITableViewController 顶部添加一个视图,该视图最初是隐藏的,直到用户下拉
我想从片段中隐藏片段容器视图(在 MainActivity 布局内),但是当我单击任务按钮然后重新打开应用程序时它不起作用