簡體   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