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)
}