繁体   English   中英

什么上下文名称应该传递给Glide方法?

[英]What context name should be passed to Glide method?

为了在使用viewholderfragment时加载图像,我不知道应该传递上下文对象名称。 以下是我的滑行代码:

Glide.with(activity).load(cheeses.getImageView()).fitCenter().into(mImageView);

错误:

at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1555) 
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:696)
at android.support.v4.app.BackStackRecord.commitAllowingStateLoss(BackStackRecord.java:667)
at com.bumptech.glide.manager.RequestManagerRetriever.getSupportRequestManagerFragment(RequestManagerRetriever.java:187)
at com.bumptech.glide.manager.RequestManagerRetriever.supportFragmentGet(RequestManagerRetriever.java:195)
at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:104)
at com.bumptech.glide.Glide.with(Glide.java:644)
at com.support.android.designlibdemo.ViewHolderClass.ViewHolder.bindToCheese(ViewHolder.java:42)
at com.support.android.designlibdemo.CheeseListFragment$1.populateViewHolder(CheeseListFragment.java:112)
at com.support.android.designlibdemo.CheeseListFragment$1.populateViewHolder(CheeseListFragment.java:93)

在ViewHolder中使用getActivity,而不是MainActivity mainActvity;

问题在这里:

 Glide.with(activity)

您正在创建一个新的Activity,而不是获取当前的Activity,这就是您收到该错误的原因。 你应该做:

 Glide.with(getActivity())...

理想情况下,您将Fragment上下文传递到RecyclerView ,并在调用中使用该上下文。 文件说:

公共静态RequestManager with(Context context)

通过传递上下文开始使用Glide进行加载。 使用上下文启动的任何请求将仅应用应用程序级别选项,并且不会基于生命周期事件启动或停止。 通常,应从使用结果的级别开始加载。如果在子片段的视图中使用资源,则应使用该子片段以(android.app.Fragment)}开始加载。 同样,如果在父片段的视图中使用该资源,则应使用父片段以(android.app.Fragment)开始加载。 同样,如果将资源用于活动的视图中,则应以(android.app.Activity)}开始加载。

此方法适用于将在正常片段或活动生命周期之外使用的资源(例如,在服务中或用于通知缩略图)。

参数:context-任何上下文,将不会保留。 返回:用于顶层应用程序的RequestManager,可用于启动加载。

资源

您可以这样做:

public ViewHolder(View view, Context context) {
    super(view);
    mView = view;
    mImageView = (ImageView) view.findViewById(R.id.avatar);
    mTextView = (TextView) view.findViewById(android.R.id.text1);
    activity = context;
}

然后,您可以使用activity

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM