2

我正在使用 Groupie 库来显示可扩展项目,而我的问题是,不是通过 api 调用检索到的项目显示在它们的每个父可扩展标题下,而是一起显示在列表中的最后一个项目下。

我想要这个:

  • 标题 1
    • 子标题 1
    • 子标题 1
    • 子标题 1
  • 标题 2
    • 子标题 2
    • 子标题 2

我有这个:

  • 标题 1
  • 标题 2
    • 子标题 1
    • 子标题 1
    • 子标题 1
    • 子标题 2
    • 子标题 2

这是我的代码

 private fun updateUICurrentExercise(getCurrentWorkoutExercise: GetCurrentWorkoutExercise?) {

    adapter = GroupAdapter()
    val workouts = getCurrentWorkoutExercise?.workouts

    for (w in workouts!!) {

        exp = ExpandableGroup(WorkoutItem("Workout ${(w.workoutId)}"), false)
        getExercisesByWorkoutAPI(w.workoutId.toString())

        adapter.add(exp)
    }

    rvWorkout.adapter = adapter
}

 private fun getExercisesByWorkoutAPI(workoutId: String) {

    GetExercisesByWorkoutAPI.postData(jo, object : GetExercisesByWorkoutAPI.ThisCallback {
        override fun onSuccess(getExercisesByWorkout: GetExercisesByWorkout?) {
           
            for (e in getExercisesByWorkout?.exercises!!) {

                exp.add(Section(ExerciseItem(workoutId)))
            }
        }

    })
}
4

2 回答 2

2

看起来您错过了使用Section.setHeader。因此,您需要WorkoutItem("Workout ${(w.workoutId)}"为每个w集合项创建一个标头实例,然后将此实例传递给ExpandableGroup构造函数并Section.setHeader

于 2019-02-03T19:34:42.050 回答
2

根据@valerii 的回复,解决了这个问题:在同一个 api 调用中启动了可扩展组及其项目。

private fun updateUICurrentExercise(getCurrentWorkoutExercise: GetCurrentWorkoutExercise?) {

    adapter = GroupAdapter()
    val workouts = getCurrentWorkoutExercise?.workouts

    for (w in workouts!!) {

        getExercisesByWorkoutAPI(w.workoutId.toString())
    }

    rvWorkout.adapter = adapter
}

 private fun getExercisesByWorkoutAPI(workoutId: String) {

    GetExercisesByWorkoutAPI.postData(jo, object : GetExercisesByWorkoutAPI.ThisCallback {
        override fun onSuccess(getExercisesByWorkout: GetExercisesByWorkout?) {

            val expandableGroup = ExpandableGroup(WorkoutItem("Workout $workoutId"), false)
            for (e in getExercisesByWorkout?.exercises!!) {
                expandableGroup.add(Section(ExerciseItem(e.exerciseName)))
            }
            adapter.add(expandableGroup)
        }
    })
}
于 2019-02-04T18:39:12.577 回答