大佬教程收集整理的这篇文章主要介绍了Android – FirebaseListAdapter的顺序是否相反?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@Override public void onViewCreated(View view,Bundle savedInstanceStatE){ Firebaselistadapter<HashMap> adapter = new Firebaselistadapter<HashMap>(getParentFragment().getActivity(),HashMap.class,R.layout.list_item,firebase.limitToLast(5)) { @Override protected void populateView(View view,HashMap hashMap,int i) { String title = hashMap.get("title").toString(); String body = hashMap.get("body").toString(); TextView title_txt = (TextView)view.findViewById(R.id.titlE); TextView body_txt = (TextView)view.findViewById(R.id.body); title_txt.setText(titlE); body_txt.setText(body); } }; listView.setAdapter(adapter); }
我遇到的问题是,当一个新项目被推送到Firebase时,它会被添加到列表的底部.我想要列表顶部的最新项目.
是否有可能实现这一目标?
非常感谢任何帮助,谢谢!
要实现您需要将firebase数据放入列表中然后在将其传递给适配器之前自行撤消的行为.简单!
第二种方法很容易就像馅饼一样,我想如果你使用RecyclerView它可以为你做到这一点,我认为这是你做这项工作最简单的方法.
// Declare the RecyclerView and the linearlayoutmanager first private RecyclerView listView; private linearlayoutmanager mLayoutManager;
…
@Override public void onViewCreated(View view,Bundle savedInstanceStatE){ // Use FirebaseRecyclerAdapter here // Here you modify your linearlayoutmanager mLayoutManager = new linearlayoutmanager(MainActivity.this); mLayoutManager.setReverseLayout(true); mLayoutManager.setStackFromEnd(true); // Now set the layout manager and the adapter to the RecyclerView listView.setLayoutManager(mLayoutManager); listView.setAdapter(adapter); }
通过设置mLayoutManager.setReverseLayout(true); – 你正在颠倒布局和mLayoutManager.setStackFromEnd(true);将视图定位到列表顶部.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://scheR_286_11845@as.android.com/apk/res/android" xmlns:app="http://scheR_286_11845@as.android.com/apk/res-auto" xmlns:tools="http://scheR_286_11845@as.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin"> <android.support.v7.widget.RecyclerView android:id="@+id/my_list" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
在你的build.gradle中
dependencies { compile 'com.android.support:recyclerview-v7:23.4.0' }
您需要在FirebaseUI库中找到FirebaseRecyclerAdapter.
注意:不要使用RecyclerView.LayoutManager作为setReverseLayout,并且在RecyclerView.LayoutManager中找不到setStackFromEnd函数.如上所述使用linearlayoutmanager.
更新
以下是如何处理列表中项目的点击事件.
您必须声明ViewHolder才能实现RecyclerView吗?只需在ViewHolder类中添加另一个函数,如下例所示,并在setText函数之后调用此函数.
public static class MyViewHolder extends RecyclerView.ViewHolder { View mView; public MyViewHolder(View itemView) { super(itemView); mView = itemView; } public void setClickEvent() { // Set the onClickListener on mView // mView.setOnClickListener(new OnClickListener)... } }
以上是大佬教程为你收集整理的Android – FirebaseListAdapter的顺序是否相反?全部内容,希望文章能够帮你解决Android – FirebaseListAdapter的顺序是否相反?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。