- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 FirebaseRecyclerAdapter 从 Firebase 获取数据并填充回收器 View 。代码工作正常,但是当我开始滚动时,回收器 View 会在每次滚动时调用 PopulateViewHolder 方法,这会导致滚动延迟很多,有时我会在回收器 View 的开头丢失一些数据。
我的代码是:
final FirebaseRecyclerAdapter<Post, PostsViewHolder> adapt = new FirebaseRecyclerAdapter<Post, PostsViewHolder>(Post.class, R.layout.layout_cardview, PostsViewHolder.class, mRef) {
@Override
protected void populateViewHolder(PostsViewHolder viewHolder, Post model, int position) {
Log.i("CHECK", "POPULATEVIEWHOLDER");
test.setLongitude(model.getLongitude());
Log.d("LONGITUDE", model.getLongitude() + "");
test.setLatitude(model.getLatitude());
Log.d("LATITUDE", test.getLatitude() + "");
try {
if ((location.distanceTo(test) / 1000.0) < 10) {
viewHolder.Content.setText(model.getContent());
viewHolder.Time.setText(model.getTime());
} else {
viewHolder.delete();
}
}catch(Exception e){
Toast.makeText(getApplicationContext(), "Please Make sure Location is enabled", Toast.LENGTH_LONG).show();
}
}
};
adapt.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
public void onItemRangeInserted(int positionStart, int itemCount) {
super.onItemRangeInserted(positionStart, itemCount);
rv.getLayoutManager().smoothScrollToPosition(rv,null,positionStart);
}
});
public static class PostsViewHolder extends RecyclerView.ViewHolder{
TextView Content;
TextView Time;
CardView cv;
public PostsViewHolder(View v) {
super(v);
Content = (TextView) v.findViewById(R.id.textview_descriptionBrief);
cv = (CardView) v.findViewById(R.id.post_cardview);
Time = (TextView) v.findViewById(R.id.textView_time);
}
public void delete(){
cv.setLayoutParams(new RecyclerView.LayoutParams(0,0));
}
}
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_lookup"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorWhite"
tools:context="com.app.postit.postit.LookupActivity">
<!--<android.support.v7.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:id="@+id/toolbar_lookupActivity">
</android.support.v7.widget.Toolbar>-->
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:id="@+id/recyclerview_lookupActivity"
/>
<android.support.design.widget.FloatingActionButton
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp"
android:id="@+id/button_floatingButton"
android:scaleType="center"
app:backgroundTint="@color/colorWhite"
app:fabSize="mini"
android:src="@drawable/ic_add_circle_blue_48dp"
app:elevation="5dp"
/>
最佳答案
它是正确的。populateViewHolder
方法由 onBindViewHolder
调用方法。
您可以查看official javadoc .
此方法由 RecyclerView
调用在指定位置显示数据。
当您滚动时,您将开始获取用于离开屏幕的行的 View 持有者,您必须用新数据替换他们持有的旧数据。
为此,调用此方法。
检查你的代码。
如果在此步骤中有一些耗时的方法(例如,如果您加载图像),则应使用异步任务。
关于android - FirebaseRecyclerAdapter、PopulateViewHolder 滚动时多次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42198666/
谁能告诉我那一行的错误是什么。 这是显示的错误消息。 package com.example.souravkumar.sqaurewallpapers; import android.os.Bundl
谁能告诉我那一行的错误是什么。 这是显示的错误消息。 package com.example.souravkumar.sqaurewallpapers; import android.os.Bundl
这个问题已经有答案了: firebaserecycleradapter() cannot be applied to FirebaseRecyclerAdapter (5 个回答) 已关闭 4 年前。
这个问题已经有答案了: firebaserecycleradapter() cannot be applied to FirebaseRecyclerAdapter (5 个回答) 已关闭 3 年前。
谁能告诉我错误是什么 enter image description here 这是我的代码 package com.andisofttechnology.myapplication.Model; i
即使在 gradle 依赖项中添加 firebase ui 后,我在尝试使用它时也无法解析 FirebaseRecyclerAdapter。提前致谢 最佳答案 我遇到了同样的问题,通过在 build.
我是 Android 编程新手。我已经能够在 firebase 中创建用户配置文件表,并且可以在 recyclerview 中显示用户配置文件表中的用户数据,但我无法让名为“Arbrg”的产品表在 f
这个问题已经有答案了: What is a NullPointerException, and how do I fix it? (12 个回答) 已关闭 4 年前。 我的应用程序在登录后立即崩溃,并
FirebaseRecyclerAdapter - populateViewHolder 第一次运行时没有填充数据,但是当我关闭应用程序并打开它时,数据绑定(bind)在 RecyclerView 中
我为单个项目创建了一个模型类和布局,然后创建了 View 持有者和 firebaseRecyclerAdapter,如下面的代码所示,当我运行它时出现了这个错误 com.google.
我有一个连接到 Firebase 的应用程序。我想用来自 firebase 的数据填充 recyclerview。在此之前,我制作了一个应用程序并且运行良好。现在我使用相同的方法,当我说 adapte
我正在使用 Firebase 创建一个聊天应用。我正在使用来自 firebase-ui 的 recycleView 和 FirebaseRecyclerAdapter 来显示所有消息。我的问题是当有人
@Override public void onStart() { super.onStart(); FirebaseRecyclerAdapter firebaseRecyclerA
我正在使用 FirebaseRecyclerAdapter(FirebaseUI 的一部分)将 Firebase 数据加载到 RecyclerView 中,但是在文档或在线的任何地方我都找不到检测它是
我需要父键及其子键来表示 RecyclerView 中的纬度和经度列表。我想我需要对 FirebaseRecyclerAdapter 内的 populateViewHolder 中的 LatLngsM
这个问题已经有答案了: FirebaseListAdapter not pushing individual items for chat app - Firebase-Ui 3.1 (2 个回答)
代码: FirebaseRecyclerOptions options = new FirebaseRecyclerOptions.Builder()
目前还不清楚如何使用自定义查询填充 FirebaseRecyclerAdapter。 定义一个引用。此处:DatabaseReference ref = mDatabase.getReference(
我的标题有点难以理解,但基本上当我将项目添加到我的数据库时,它应该显示在 RecyclerView 中。现在在我的 RecyclerView 中我有两个布局,但问题是我的数据库的第一项在我的其他布局中
浏览 Firebase Android 友好聊天代码实验室 - https://codelabs.developers.google.com/codelabs/firebase-android/ -
我是一名优秀的程序员,十分优秀!