Android Recycleview项大小在对话框片段中不起作用

Android Recycleview项大小在对话框片段中不起作用,android,android-recyclerview,kotlin,android-dialogfragment,Android,Android Recyclerview,Kotlin,Android Dialogfragment,我制作了一个DialogFragment,其中有一个ViewPager,而ViewPager包含片段,其中有Recyclerview。我面临的问题是,Recyclerview中只有一个项目,而Recyclerview中的项目大小不正确 这是我的对话框片段 class StickerSelectorPopup: DialogFragment(), StickerPickerAdapter.Listener { private lateinit var mAdapter: FeedFragment.

我制作了一个
DialogFragment
,其中有一个
ViewPager
,而
ViewPager
包含
片段,其中有
Recyclerview
。我面临的问题是,
Recyclerview
中只有一个项目,而
Recyclerview
中的项目大小不正确

这是我的
对话框片段

class StickerSelectorPopup: DialogFragment(), StickerPickerAdapter.Listener {
private lateinit var mAdapter: FeedFragment.Adapter
private lateinit var mViewPager: ViewPager
private lateinit var mTabs: TabLayout
private var isFirstTime = true
private var mUserUid = ""

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    val mView = inflater.inflate(R.layout.dialog_view_sticker_tab, container, false)

    mViewPager = mView.findViewById(R.id.viewpager)
    mTabs = mView.findViewById(R.id.result_tabs)
    mAdapter = FeedFragment.Adapter(childFragmentManager)

    return mView
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)

            mAdapter.addFragment(StickerPickerFragment.newInstance(mutableListOf("chat.gif", "fhere.gif", "hai.gif", "sedih.gif"), 2, this@StickerSelectorPopup, "gabut_woman"), "Gabut Woman")
    mAdapter.addFragment(StickerPickerFragment.newInstance(mutableListOf("8.gif"), 2, this@StickerSelectorPopup, "gabut_man"), "Gabut Man")

    mViewPager.adapter = mAdapter

    mTabs.setupWithViewPager(mViewPager)
}
}
这是通过
ViewPager
加载的
片段

class StickerPickerFragment : Fragment() {
private var mListSticker = mutableListOf<String>()
private var mStickerUid = 0
private var mFolder = ""
private lateinit var mListener: StickerPickerAdapter.Listener
private lateinit var mRecycleView: RecyclerView

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                          savedInstanceState: Bundle?): View? {
    // Inflate the layout for this fragment
    val v = inflater.inflate(R.layout.fragment_sticker_picker, container, false)
    mRecycleView = v.findViewById(R.id.adStickerPickerRvMain)
    mRecycleView.setHasFixedSize(true)
    mRecycleView.layoutManager = LinearLayoutManager(context!!)
    mRecycleView.adapter = StickerPickerAdapter(mFolder, mStickerUid, mListener)

    (mRecycleView.adapter as StickerPickerAdapter).addAll(mListSticker)

    return  v
}
}
此片段由ViewPager XML加载

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context=".ui.stickerpicker.StickerPickerFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/adStickerPickerRvMain"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/amber_100"/>
</LinearLayout>
它仅适用于1项。如果有多个项目,则仅显示第一个项目,并且项目视图大小不正确


蓝色是项目适配器的背景
黄色是片段中Recyclerview的背景

欢迎来到so。您可以在贴纸图像视图中尝试android:adjustViewBounds=“true”
。如果这对我没有帮助,我有一些问题来缩小问题的范围:你能把
标签和PickerAdapter
?当视图不在
对话框片段中时,它们的行为是否符合预期?谢谢。我真傻。这个问题已经解决了。由于本地主机的ip已更改,并且映像未加载,因此该映像来自Glide的临时文件夹,因此在没有internet的情况下仍然加载。
<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context=".ui.stickerpicker.StickerPickerFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/adStickerPickerRvMain"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/amber_100"/>
</LinearLayout>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="80dp"
android:layout_height="80dp"
android:background="@color/blue_100">

<ImageView
    android:id="@+id/adStickerItemImage"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="8dp"
    android:adjustViewBounds="false"
    android:contentDescription="Sticker"/>
</RelativeLayout>