плохая практика - выставлять Activity в макете XML в приложении MVVM? - PullRequest
1 голос
/ 26 марта 2019

Общая идея заключается в том, что в XML-макете есть ссылка на ViewModel, например, такую:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/layout">

    <data>
        <variable
            name="aboutViewModel"
            type="com.app.about.AboutActivity" />
    </data>

Вопрос в том, что если это плохая практика, выставьте также действия, подобные этой:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/layout">

    <data>
        <variable
            name="aboutActivity"
            type="com.app.about.AboutActivity" />

    </data>

Потому что иногда мне нужны только функции вызова для открытия или закрытия действия, и я думаю, что это не достаточная причина для создания новой ViewModel.

Спасибо

1 Ответ

1 голос
/ 26 марта 2019

Если вы следуете за OOB - разделением интересов , тогда вам не следует тесно связывать VM с Activity. Также вам не нужно создавать новый VM или тесно связывать текущее VM, вы можете просто получить доступ к деятельности / контексту, как это:

android:onClick="@{(view)->((Activity)(view.getContext()))}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...