Je ne peux pas observer le code> modification de l'activité, mais l'interface utilisateur est mise à jour (la liste a augmenté dans ActiveTty). Je ne peux que l'observer une fois lorsque la LiveData est initialisé.
Lorsque la bibliothèque de pagination appelle la méthode LoadAfter, l'interface utilisateur est mise à jour, mais n'a pas appelé pagelist.Observe {} P> Tout d'abord, j'ai mis le processus de demande de données dans les coroutines de Kotlin, je ne peux pas observer la Changement de données, alors j'ai utilisé des demandes asynchrones à la place. Il n'a toujours pas fonctionné. P> Voici mon code: p> Code principal de la lecture de la lecture P> LivetaA
interface WorkCommentApi {
/**
* list comment
*/
@GET("public/work/comment")
fun listComment(@Query("workId") workId: Long, @Query("current") current: Long, @Query("size") size: Int): Call<TResult>
}
3 Réponses :
Ceci se produit car chaque fois que vous appelez Vous pouvez utiliser Activité: P> vm.listmendment (WorkID) code>, l'objet que vous avez d'abord lié dans l'activité est tué et que nouvel objet est créé.
transformations code> avec
mediatorlivedata code>. p>
class BaseRepository(val app: Application) {
private val logout = MutableLiveData<PagedList<WorkComment>>()
fun getLogoutResponse(): LiveData<PagedList<WorkComment>> = logout
override fun create(): DataSource<Long, WorkComment> {
//when you get your data
logout.value = // your value
}
Je viens d'appeler vm.listmendment (workid) code> une fois lorsque l'activité est créée, a-t-elle été créée deux fois ou plus?
Non .. Mais j'avais fait face à un problème similaire, N Mediatorlivedata a résolu le problème. Donc, vous pouvez essayer cette approche
Vous devez avoir votre identifiant de travail être des données mutables à respecter par la transformation. Donc, chaque fois que vous mettez à jour votre travail, ID, cela cherchera des commentaires. Comme ainsi ...
ViewModel: P> blockQuote>
xxx pré> Puis dans votre activité, observez p> blockQuote>
xxx pré> Chaque fois que vous mettez à jour le workidMutableliveData en effectuant un p>
xxx pré> ... Le recyclageview sera mis à jour. Votre RECYCLERVIEW doit hériter de PageDlistadapter. P> P>
Le workid est une constante qui ne change pas dans cette activité, avez-vous une autre façon? Je ne sais pas pourquoi je ne peux pas observer le commentaire
Comment votre liste de commentaires change-t-elle? Votre source de données met à jour la liste de commentaires. L'identifiant de travail est ce qui générer les commentaires.
Après tester, je savais que la liste ne pouvait pas être observée lorsqu'il a changé de données interne, comme On ne sera observé que lorsque sa référence a été modifiée, comme la création ou l'attribution d'une opération: Donc, je ne pouvais donc pas observer le changement de données de ajouter () code>,
supprimer () code>. etc. p>
list.value = null code> p>
LivetaA