在 recyclerView 中设置 cardView 可见性的问题
Problem with setting visibility of cardView in recyclerView
您好,我在设置 cardView
部分的可见性时遇到问题。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout(..........)>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
(..........)>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/titleLayout"
(..........)>
<TextView
android:id="@+id/text_view_title"
(..........)/>
<androidx.constraintlayout.widget.ConstraintLayout
android:visibility="gone" <<<<<<<<<
android:id="@+id/expandableView"
(..........)>
<TextView
android:id="@+id/text_view_description"
(..........) />
<TextView
android:id="@+id/text_view_priority"
(..........) />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
你怎么看我把cardView
分成了两部分。在我的 showDescription()
方法中,我想将描述部分的可见性更改为可见或(如果它已经可见)消失。
View cardView = inflater.inflate(R.layout.note_item, container, false);
final ConstraintLayout expandableView = cardView.findViewById(R.id.expandableView);
adapter.setOnItemClickListener(new NoteAdapter.OnItemClickListener() {
@Override
public void onItemClick(final DocumentSnapshot documentSnapshot, int position) {
Note note = documentSnapshot.toObject(Note.class);
int pathInt = position;
String path =String.valueOf(pathInt);
showDescription(expandableView);
}
});
return RootView;
}
public void showDescription (ConstraintLayout expandableView){
if(expandableView.getVisibility()== View.VISIBLE){
expandableView.setVisibility(View.GONE);
}else {
expandableView.setVisibility(View.GONE);
}
}
}
我不知道为什么,但点击 cardView
(无论是哪个)后没有任何反应。也许是因为我的应用程序不知道 cardView
执行该方法?我怎样才能让它发挥作用?
问题在这里:
final ConstraintLayout expandableView = cardView.findViewById(R.id.expandableView);
您正在制作 expandableView
final
。 final
变量无法修改。删除 final
关键字:
ConstraintLayout expandableView = cardView.findViewById(R.id.expandableView);
我认为您还应该将 showDescription
函数的代码放在 setOnItemClickListener
中,而不是将 `expandableView' 传递给函数。
您好,我在设置 cardView
部分的可见性时遇到问题。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout(..........)>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
(..........)>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/titleLayout"
(..........)>
<TextView
android:id="@+id/text_view_title"
(..........)/>
<androidx.constraintlayout.widget.ConstraintLayout
android:visibility="gone" <<<<<<<<<
android:id="@+id/expandableView"
(..........)>
<TextView
android:id="@+id/text_view_description"
(..........) />
<TextView
android:id="@+id/text_view_priority"
(..........) />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
你怎么看我把cardView
分成了两部分。在我的 showDescription()
方法中,我想将描述部分的可见性更改为可见或(如果它已经可见)消失。
View cardView = inflater.inflate(R.layout.note_item, container, false);
final ConstraintLayout expandableView = cardView.findViewById(R.id.expandableView);
adapter.setOnItemClickListener(new NoteAdapter.OnItemClickListener() {
@Override
public void onItemClick(final DocumentSnapshot documentSnapshot, int position) {
Note note = documentSnapshot.toObject(Note.class);
int pathInt = position;
String path =String.valueOf(pathInt);
showDescription(expandableView);
}
});
return RootView;
}
public void showDescription (ConstraintLayout expandableView){
if(expandableView.getVisibility()== View.VISIBLE){
expandableView.setVisibility(View.GONE);
}else {
expandableView.setVisibility(View.GONE);
}
}
}
我不知道为什么,但点击 cardView
(无论是哪个)后没有任何反应。也许是因为我的应用程序不知道 cardView
执行该方法?我怎样才能让它发挥作用?
问题在这里:
final ConstraintLayout expandableView = cardView.findViewById(R.id.expandableView);
您正在制作 expandableView
final
。 final
变量无法修改。删除 final
关键字:
ConstraintLayout expandableView = cardView.findViewById(R.id.expandableView);
我认为您还应该将 showDescription
函数的代码放在 setOnItemClickListener
中,而不是将 `expandableView' 传递给函数。