我使用了RecyclerView,它通过LayoutManager调整为水平形状, 我将RecyclerView放在HorizontalScrollView中,效果很好,在真实电话中的Android Studio的android模拟中,它有时可以工作!我的意思是它会稍微滚动而无法完全滚动,但是如果您尝试滚动太多,它可能会完全滚动。
这是我的回收者视图代码:
<HorizontalScrollView
android:id="@+id/scrollbar"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_challenge"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</HorizontalScrollView>
这些代码显示了我如何在Fragment中使用RecyclerView:
val recyclerView = view.findViewById<RecyclerView>(R.id.recycler_challenge)
recyclerView.layoutManager = LinearLayoutManager(view.context, LinearLayoutManager.HORIZONTAL, false)
val challenges = ArrayList<challenge_model>()
challenges.add(challenge_model("https://pic1.jpg", "picture one", false,"pic_1"))
challenges.add(challenge_model("https://pic1.jpg", "picture two", false,"pic_2"))
challenges.add(challenge_model("https://pic1.jpg", "picture two", false,"pic_3"))
challenges.add(challenge_model("https://pic1.jpg", "picture two", false,"pic_4"))
challenges.add(challenge_model("https://pic1.jpg", "picture two", false,"pic_5"))
val adapter = challenge_adapter(challenges)
recyclerView.adapter = adapter
adapter.notifyDataSetChanged()
基于上面的代码,大约无法完全滚动,我的意思是我可以滚动并看到三张图片,看来就是这样!但有时它可以完全滚动并显示所有5张图像。
答案 0 :(得分:1)
尝试使用唯一的recyclerview,从父级删除HorizontalScrollView。对于HorizontalScroll,您可以使用以下代码。
recycler_challenge.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true));
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_challenge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layoutManager="android.support.v7.widget.LinearLayoutManager" />
答案 1 :(得分:-1)
首次设置适配器时,不需要notifyDataSetChanged(), 因此,尝试删除
adapter.notifyDataSetChanged()
您以后在班上任何地方的列表项发生变化时都应使用它。