【发布时间】:2021-07-01 10:06:25
【问题描述】:
我正在尝试使用Glide 在 RecyclerView 中加载 4 张图像,但它什么也没加载。我尝试了Picasso,但得到了相同的结果。应用程序具有互联网许可。如果我在MainActivity 中运行Picasso 和Glide,它们运行良好,但它们在我的适配器中不起作用。如果我在适配器中使用drawables,它就可以工作。如果我将 ImageView 替换为 TextView 它可以工作。仅使用Glide 和Picasso 失败我不知道我错在哪里,任何帮助将不胜感激。这是我的代码:
Fragment1.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Item_list.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/datoId"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Fragment1.java
public class Fragment1 extends Fragment {
ArrayList<String> listaDatos;
RecyclerView recycler;
String url1 = "https://image.tmdb.org/t/p/w500/2xFicIrFGqsy503rcuGUw6PAacw.jpg";
String url2 = "https://image.tmdb.org/t/p/w500/bnuC6hu7AB5dYW26A3o6NNLlIlE.jpg";
String url3 = "https://image.tmdb.org/t/p/w500/rkuvJnamPl3xW9wKJsIS6qkmOCW.jpg";
String url4 = "https://image.tmdb.org/t/p/w500/orzPlWUbf0S5HeWmpP3TeHvduwn.jpg";
public Fragment1() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_1, container, false);
recycler = (RecyclerView) view.findViewById(R.id.recycler);
recycler.setLayoutManager(new GridLayoutManager(getContext(),2));
listaDatos = new ArrayList<String>();
listaDatos.add(url1);
listaDatos.add(url2);
listaDatos.add(url3);
listaDatos.add(url4);
Adaptador adaptador = new Adaptador(listaDatos);
recycler.setAdapter(adaptador);
return view;
}
}
Adaptador.java(适配器)
public class Adaptador extends RecyclerView.Adapter<Adaptador.ViewHolderDatos> {
ArrayList<String> listaDatos;
public Adaptador(ArrayList<String> listaDatos) {
this.listaDatos = listaDatos;
}
@NonNull
@Override
public ViewHolderDatos onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, null, false);
return new ViewHolderDatos(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolderDatos holder, int position) {
holder.asignarDatos(listaDatos.get(position));
}
@Override
public int getItemCount() {
return listaDatos.size();
}
public class ViewHolderDatos extends RecyclerView.ViewHolder {
ImageView caratula;
public ViewHolderDatos(@NonNull View itemView) {
super(itemView);
caratula = itemView.findViewById(R.id.datoId);
}
public void asignarDatos(String s) {
//caratula.setImageResource(R.drawable.ic_launcher_foreground); // Works
//Picasso.get().load(s).into(caratula); //Not works
//caratula.setText(s); // Swapping ImageView for TextView, this works
Glide.with(caratula.getContext())
.load(s)
.error(R.drawable.ic_launcher_background)
.placeholder(R.drawable.ic_launcher_foreground)
.into(caratula); // Not works
}
}
}
日志
2021-04-05 19:13:34.411 5356-5356/? I/yecto.adaptado: Late-enabling -Xcheck:jni
2021-04-05 19:13:34.427 5356-5356/? E/yecto.adaptado: Unknown bits set in runtime_flags: 0x8000
2021-04-05 19:13:34.564 5356-5356/com.proyecto.adaptador I/yecto.adaptado: Waiting for a blocking GC ClassLinker
2021-04-05 19:13:34.569 5356-5356/com.proyecto.adaptador I/yecto.adaptado: WaitForGcToComplete blocked ClassLinker on HeapTrim for 5.317ms
2021-04-05 19:13:34.579 5356-5356/com.proyecto.adaptador I/Perf: Connecting to perf service.
2021-04-05 19:13:34.591 5356-5356/com.proyecto.adaptador I/FeatureParser: can't find joyeuse.xml in assets/device_features/,it may be in /vendor/etc/device_features
2021-04-05 19:13:34.599 5356-5356/com.proyecto.adaptador E/libc: Access denied finding property "ro.vendor.df.effect.conflict"
2021-04-05 19:13:34.582 5356-5356/com.proyecto.adaptador W/yecto.adaptador: type=1400 audit(0.0:39742): avc: denied { read } for name="u:object_r:vendor_default_prop:s0" dev="tmpfs" ino=1008 scontext=u:r:untrusted_app:s0:c36,c257,c512,c768 tcontext=u:object_r:vendor_default_prop:s0 tclass=file permissive=0
2021-04-05 19:13:34.642 5356-5356/com.proyecto.adaptador D/ForceDarkHelper: updateByCheckExcludeList: pkg: com.proyecto.adaptador activity: com.proyecto.adaptador.MainActivity@3f0787e
2021-04-05 19:13:34.644 5356-5356/com.proyecto.adaptador D/ForceDarkHelper: updateByCheckExcludeList: pkg: com.proyecto.adaptador activity: com.proyecto.adaptador.MainActivity@3f0787e
2021-04-05 19:13:34.667 5356-5356/com.proyecto.adaptador W/yecto.adaptado: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
2021-04-05 19:13:34.667 5356-5356/com.proyecto.adaptador W/yecto.adaptado: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
2021-04-05 19:13:34.674 5356-5356/com.proyecto.adaptador D/ForceDarkHelper: updateByCheckExcludeList: pkg: com.proyecto.adaptador activity: com.proyecto.adaptador.MainActivity@3f0787e
2021-04-05 19:13:34.681 5356-5356/com.proyecto.adaptador I/chatty: uid=10292(com.proyecto.adaptador) identical 2 lines
2021-04-05 19:13:34.682 5356-5356/com.proyecto.adaptador D/ForceDarkHelper: updateByCheckExcludeList: pkg: com.proyecto.adaptador activity: com.proyecto.adaptador.MainActivity@3f0787e
2021-04-05 19:13:34.714 5356-5356/com.proyecto.adaptador D/ForceDarkHelper: updateByCheckExcludeList: pkg: com.proyecto.adaptador activity: com.proyecto.adaptador.MainActivity@3f0787e
2021-04-05 19:13:34.727 5356-5356/com.proyecto.adaptador I/chatty: uid=10292(com.proyecto.adaptador) identical 6 lines
2021-04-05 19:13:34.727 5356-5356/com.proyecto.adaptador D/ForceDarkHelper: updateByCheckExcludeList: pkg: com.proyecto.adaptador activity: com.proyecto.adaptador.MainActivity@3f0787e
2021-04-05 19:13:34.737 5356-5392/com.proyecto.adaptador I/AdrenoGLES: QUALCOMM build : 57da73e, I82b4603a7a
Build Date : 12/03/20
OpenGL ES Shader Compiler Version: EV031.27.05.03
Local Branch :
Remote Branch : refs/tags/AU_LINUX_ANDROID_LA.UM.8.9.R1.10.00.00.558.071
Remote Branch : NONE
Reconstruct Branch : NOTHING
2021-04-05 19:13:34.737 5356-5392/com.proyecto.adaptador I/AdrenoGLES: Build Config : S P 8.0.12 AArch64
2021-04-05 19:13:34.739 5356-5392/com.proyecto.adaptador I/AdrenoGLES: PFP: 0x016ee187, ME: 0x00000000
2021-04-05 19:13:34.754 5356-5392/com.proyecto.adaptador W/Gralloc3: mapper 3.x is not supported
```
【问题讨论】:
-
它是否显示“错误”drawable?还是什么都不显示?有一种方法可以为
Picasso和Glide添加错误侦听器,我想,我记得不久前做过。这样您就可以更详细地检查正在发生的事情。需要注意的一件事是您的item_list布局使用match_parent可能只显示 1 个项目,因为它会占据整个屏幕 -
能否请您发布您的日志。
-
caratula是否为空? -
它什么也不显示。 Caratula 不为空,我已经对其进行了调试,并且它具有价值,并且我可以毫无问题地在其上显示可绘制对象。我已经编辑了帖子并在运行应用程序时包含了我的日志。
-
我用load(ImageView, callback)调用了picaso,picasso每次都调用onSuccess,但是imageView中什么都没有显示。
标签: java android android-recyclerview picasso