android - 当我添加帖子时,我想显示更新的页面列表
问题描述
我想在添加帖子时滚动位置
这是一个代码
我想我使用 scrolltoPostion 函数,但在使用它之前我必须定义 RecyclerView 但是在这个类中我在定义 RecyclerView 时遇到问题,因为我不知道添加到 Recycler 视图 ex)Recyclerview rv 的正确变量是什么 rv=???
private void addPost(Post post) {
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("Posts").push();
// get post unique ID and upadte post key
String key = myRef.getKey();
post.setPostKey(key);
// add post data to firebase database
myRef.setValue(post).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
popupClickProgress.setVisibility(View.INVISIBLE);
popupAddBtn.setVisibility(View.VISIBLE);
// illegal 오류 해결 수정
if(popAddPost!=null&&popAddPost.isShowing()){
popAddPost.dismiss();
}
RecyclerView rv;
rv.getLayoutManager().scrollToPosition(0);
}
});
}
但我不能在这个类中使用 RecyclerView。那我该如何解决呢?在其他类中,我使用了 Recycler View 这是一个代码
RecyclerView postRecyclerView ;
PostAdapter postAdapter;
FirebaseDatabase firebaseDatabase;
DatabaseReference databaseReference;
List<Post> postList;
public HomeFragment() {
// Required empty public constructor
}
// TODO: Rename and change types and number of parameters
public static HomeFragment newInstance(String param1, String param2) {
HomeFragment fragment = new HomeFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
LinearLayoutManager lin = new LinearLayoutManager(getActivity());
lin.setStackFromEnd(true);
lin.setReverseLayout(true);
View fragmentView = inflater.inflate(R.layout.fragment_home, container, false);
postRecyclerView = fragmentView.findViewById(R.id.postRV);
postRecyclerView.setLayoutManager(lin);
postRecyclerView.setHasFixedSize(true);
firebaseDatabase = FirebaseDatabase.getInstance();
databaseReference = firebaseDatabase.getReference("Posts");
return fragmentView;
}
我想也许我在这里使用这个 postRecyclerView 变量或任何其他解决方案?我是初学者,所以请给我提示。
解决方案
因此,据我了解,您希望在向该列表添加新项目时更新回收站视图(我想是数组)。因此,请为此使用更新程序功能。您可以将回收站视图定义为您想要的任何内容, rv 工作得很好。您可以使用实时数据来处理您提供给回收站视图的数据。检查一下,看看它是否以某种方式对您有所帮助。 https://medium.com/@atifmukhtar/recycler-view-with-mvvm-livedata-a1fd062d2280
推荐阅读
- php - 从“用户”模型中提取电子邮件字段并通过外键将其添加到单独的模型“电子邮件”中
- c# - 使用列表类型的类的属性以外的值创建一个新列表
- bash - 在 bash 中解析 markdown 文件以获取所有缩进行及其在文件中的位置
- javascript - 如何使用 CORS 在服务人员中获取日期响应标头?
- gremlin - 带有远程 JanusGraph 的突变侦听器事件策略正在引发序列化异常
- flutter - Flutter 你可以用compute()将对象作为消息“发送”吗?
- python-3.x - 使用 python sdk 在 github 中使用远程 docker 文件构建 docker 映像
- javascript - 如何将动态 json 数据用于谷歌甘特图?
- vue.js - Vue.js 页面的 Phantom.js PDF 为空
- batch-file - 你好!我如何在 CMD 中将符号 & 写入变量?)