java - 带有 Firestore 的可扩展 RecyclerView。怎么做?
问题描述
我在为我的项目实施可扩展的 RecyclerView 时遇到问题。我不知道为什么,但是我的应用程序在单击时没有响应,cardView
如果您查看我的代码并写下我可以解决的问题,如果您在其中发现一些错误,我将非常感激。所以首先...
public NoteHolder(View itemView) {
super(itemView);
textViewTitle = itemView.findViewById(R.id.text_view_title);
textViewDescription = itemView.findViewById(R.id.text_view_description);
textViewPriority = itemView.findViewById(R.id.text_view_priority);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = getAdapterPosition();
if (position != NO_POSITION && listener != null) {
listener.onItemClick(getSnapshots().getSnapshot(position), position);
}
}
});
}
}
在我NoteHolder
的设置listener
上onItemClick
就可以了。那么让我们看看onItemClick
HomeFragment 中的方法
public class HomeFragment extends Fragment {...
FirestoreRecyclerOptions<Note> options = new FirestoreRecyclerOptions.Builder<Note>()
.setQuery(query, Note.class)
.build();
adapter = new NoteAdapter(options);
RecyclerView recyclerView = RootView.findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setAdapter(adapter);
//DetailView
View CardView = inflater.inflate(R.layout.note_item, container, false);
final ConstraintLayout cardView = CardView.findViewById(R.id.relativeLayout);
adapter.setOnItemClickListener(new NoteAdapter.OnItemClickListener() {
@Override
public void onItemClick(final DocumentSnapshot documentSnapshot, int position) {
Note note = documentSnapshot.toObject(Note.class);
int pathInt = position;
constraintLayout = cardView.findViewById(R.id.expandableLayout);
String path =String.valueOf(pathInt);
if(possition != NO_POSSITION) {
Animation slideDown = AnimationUtils.loadAnimation(context, R.anim.slide_out_top);
constraintLayout.setVisibility(View.VISIBLE);
//adding sliding effect
constraintLayout.startAnimation(slideDown);
}
}
});
如果(位置!= NO_POSSITION){...}
这if
被执行了,我试着把它放进去Log.d
,它显示了预期的消息。
解决方案
推荐阅读
- javascript - 如何将所有键/值对从 forEach 推送到对象
- php - 如何拥有多个依赖用户输入的产品 Laravel
- android - Android:尽管有权限,但无法列出 /storage/emulated/0 文件
- python - 当我装饰 python 函数时,VS Code 在悬停时显示包装器的帮助,而不是函数的
- string - 如何在 Bash 中比较和递归修改字符串
- spring-boot - Spring boot 数据 Cassandra 抛出 com.datastax.oss.driver.api.core.DriverTimeoutException: query 'SELECT * FROM system.peers' 在 PT0.5S 后超时
- csv - 有没有一种简单的方法来拆分具有多行条目的大型 CSV 文件?
- jekyll - 解析包含参数文本中的链接
- c# - 尝试为游戏设置记分牌时出现空引用异常。不确定该怎么做
- javascript - 我的第二个端点不适用于 node-js API,为什么?