Android 当在recyclerview中时,viewpager中的片段不显示

Android 当在recyclerview中时,viewpager中的片段不显示,android,android-fragments,kotlin,android-nested-fragment,Android,Android Fragments,Kotlin,Android Nested Fragment,也许这是个愚蠢的问题,但这毁了我的一天 我有一个片段中的回收视图 override fun setUpRecyclerView(pics: List<Pictures>) { recyclerView.setHasFixedSize(true) layoutManager = LinearLayoutManager(context) recyclerView.setLayoutManager(layoutManager) mAdapter = Ne

也许这是个愚蠢的问题,但这毁了我的一天

我有一个片段中的回收视图

override fun setUpRecyclerView(pics: List<Pictures>) {
    recyclerView.setHasFixedSize(true)

    layoutManager = LinearLayoutManager(context)
    recyclerView.setLayoutManager(layoutManager)

    mAdapter = NewsAdapter(pics, childFragmentManager)
    recyclerView.setAdapter(mAdapter)
}
最后一个是图片展示:

class PictureFragment : NewsContentFragment() {

    companion object {
        val KEY = "PictureFragment.URL"

        fun newInstance(url: String): NewsContentFragment {
            val fragment = PictureFragment()
            val bundle = Bundle()
            bundle.putString(KEY, url)
            fragment.arguments = bundle
            return fragment
        }
    }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {

        return inflater.inflate(R.layout.fragment_news_gif, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        arguments?.getString(KEY).let {
            view.image.loadUrl(it!!)
        }
    }
}
调试代码时,我会检查是否执行了
view.image.loadUrl(it!!)
,但没有呈现任何内容

loadUrl方法是ImageView的一个扩展函数,它使用如下方式加载图像

fun ImageView.loadUrl(url: String) {
    GlideApp.with(context).load(url).into(this)
}
并且被正确地调用

我还尝试使用PagerStateAdapter,并考虑到我正在将ChildFragmentManager传递给ViewPager的适配器


如果你能帮我,你会救我的。提前感谢

这不起作用。要走的路是从一个回收者变成一个回收者。如果要将simulate用作ViewPager,可以在 子视图

class GalleryContentFactory {
    fun getFragment(contentModel: ContentModel): Fragment {
        when (contentModel.type) {
            "PICTURE" -> return PictureFragment.newInstance(contentModel.value)
        }
        return PictureFragment.newInstance(contentModel.value)
    }
}
class PictureFragment : NewsContentFragment() {

    companion object {
        val KEY = "PictureFragment.URL"

        fun newInstance(url: String): NewsContentFragment {
            val fragment = PictureFragment()
            val bundle = Bundle()
            bundle.putString(KEY, url)
            fragment.arguments = bundle
            return fragment
        }
    }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {

        return inflater.inflate(R.layout.fragment_news_gif, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        arguments?.getString(KEY).let {
            view.image.loadUrl(it!!)
        }
    }
}
fun ImageView.loadUrl(url: String) {
    GlideApp.with(context).load(url).into(this)
}