两个片段一起作为菜单使用;最上面的片段应包含一个ImageView,该图像通过最下面的片段内的列表进行更改。我该怎么做呢?我需要使用RecyclerView吗?
我不确定从哪里开始,是否必须为每个列表项制作一个通用的片段或创建一个片段。如果我可以使用通用选项;我将如何去做这样的事情?任何帮助将不胜感激,我真的迷路了。
答案 0 :(得分:1)
我肯定会使用RecyclerView作为列表。
对于顶部,如果您只是替换图像,我建议仅在主要活动上使用ImageView。
然后在RecyclerView适配器中设置一个接口,该接口将所选对象传递到片段,然后返回活动。然后在该回调中,更新ImageView。
答案 1 :(得分:0)
使用观察者模式。
当您单击底部片段的RecyclerView中的某个项目时,请以所选的新值通知所有订户。然后,在活动上,将顶部片段设置为订户,最后,在顶部片段的回调中,在ImageView中进行更改。
是的,强烈建议您使用RecyclerView将这些物品作为列表处理。
PS ::仅当您要在其他活动中使用具有相同行为的RecyclerView或ImageView时,才需要使用片段,否则将它们直接保留在活动中完全没问题。
答案 2 :(得分:0)
您可以选择其中之一。
因此,基本上,您可以编写任何布局文件,并且可以使用@numba.jit
,Fragment
或仅使用Activity
对其进行膨胀从这个角度来看(布局文件)很重要。
RecyclerView.ViewHolder
的所有代码Fragment
不同;这基本上意味着您无需执行Activity
模式的实现即可在它们之间传递复杂的对象(片段<->片段||片段<->活动)Parcelable
就足够了:实现一个片段真的很好,但是如果您不需要它,那么您正在编写的代码样例并没有真正的用途……所以不要那样做:P
Activity
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".StackOverflowSample">
<ImageView
android:id="@+id/your_image_view"
android:src="@drawable/ic_launcher_foreground"
android:layout_width="match_parent"
android:layout_height="200dp"
app:layout_constraintTop_toTopOf="parent"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@+id/your_image_view"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>