View 布局最初是隐藏的,然后onclick 将使view 可见,反之亦然(Android)
View layout that are initially hidden, then onclick will make view visible, and vice versa(Android)
我有一个最初设置为 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);
}
});
}
}
问题是,当我单击后退布局时,它不会保持隐藏状态。
试试这个:
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
状态。您需要保持列表项的可见性。
尝试进行调节并检查在单击按钮时视图是否可见或消失
if(expandableLayout.getVisibility==View.GONE){
expandableLayout.setVisibility(View.VISIBLE);
}
else {
expandableLayout.setVisibility(View.GONE);
}
我有一个最初设置为 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);
}
});
}
}
问题是,当我单击后退布局时,它不会保持隐藏状态。
试试这个:
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
状态。您需要保持列表项的可见性。
尝试进行调节并检查在单击按钮时视图是否可见或消失
if(expandableLayout.getVisibility==View.GONE){
expandableLayout.setVisibility(View.VISIBLE);
}
else {
expandableLayout.setVisibility(View.GONE);
}