Общайтесь с другими фрагментами - почему изменилась лучшая практика - PullRequest
1 голос
/ 26 сентября 2019

Почему команда Android изменила лучшие практики, чтобы назначить интерфейс фрагменту.

До того, как он был на фрагменте onAttach(context: Context), мы приводим контекст к интерфейсу.

private lateinit var onHeadlineSelectedListener: OnHeadlineSelectedListener

override fun onAttach(context: Context?) {
    super.onAttach(context)
    onHeadlineSelectedListener = activity as OnHeadlineSelectedListener
}

Теперь Android рекомендует сделать это на onAttachFragment() по ссылке ниже:

class MainActivity : Activity(), HeadlinesFragment.OnHeadlineSelectedListener {
    // ...

    fun onAttachFragment(fragment: Fragment) {
        if (fragment is HeadlinesFragment) {
            fragment.setOnHeadlineSelectedListener(this)
        }
    }
}

https://developer.android.com/training/basics/fragments/communicating#kotlin

1 Ответ

0 голосов
/ 29 сентября 2019

Теперь лучше использовать viewModel для сохранения состояния данных или действия, и вы можете иметь действующие данные в диапазоне от

1., так что создайте действие, а затем создайте SheredViewModel

2..add aliveata: LiveData

добавьте свою модель представления в свою деятельность с помощью viewModelProviders.of (this) [SheredViewModel]

добавьте наблюдателя в действие, если вы хотите прослушать изменения вдействие или любое другое место

перейти к вашему фрагменту и добавить viewModelProviders.of (активность) [SheredViewModel]

теперь в этомВ случае, если вы публикуете какие-либо данные в liveData: LiveData любой может прослушать ваши изменения элегантно и чисто

, вы можете посмотреть документ Android для этого примера по этой ссылке

https://developer.android.com/topic/libraries/architecture/viewmodel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...