feature/TI-193: [Android] Реализоваь viewModel factory #2
Loading…
Reference in New Issue
No description provided.
Delete Branch "feature/TI-193"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
f66312e707tod71fda5853@ -5,2 +5,3 @@android:layout_width="match_parent"android:layout_height="match_parent" />android:layout_height="match_parent"android:background="@color/biometric_error_color">такого ресурса почему то нет, хотя он поставляется из сторонних библиотек
Как следствие на моем 29 эмуле прила падает
java.lang.RuntimeException: Unable to start activity ComponentInfo{ru.touchin.template.debug/ru.touchin.template.feature.SingleActivity}: android.view.InflateException: Binary XML file line #7 in ru.touchin.template.debug:layout/activity_main: Binary XML file line #7 in ru.touchin.template.debug:layout/activity_main: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
...
Caused by: android.content.res.Resources$NotFoundException: File res/color-v26/biometric_error_color.xml from drawable resource ID #0x7f060021
@ -0,0 +18,4 @@protected fun getSharedComponent(): SharedComponent = getSharedModule()override fun onBackPressed(): Boolean {return (viewModel as BaseController).onBackClicked()Исходя их описания класса
T : ViewModel, а вью модел у тебя не обязательно имплеменишь BaseController
Выход -- делаешь BaseViewModel и в ней имплементишь BaseController
А тут тогда T : BaseViewModel
И тогда не нужно будет вызывать не безопасный
as(as BaseController)@ -0,0 +5,4 @@import ru.touchin.template.di.SharedComponentimport ru.touchin.template.di.getSharedModuleabstract class BaseActivity<T : ViewModel> : AppCompatActivity() {А если у нас появилась BaseViewModel
То лучше и тут ее использовать
@ -0,0 +11,4 @@class FirstFragment : BaseFragment<FirstViewModel>() {private var _binding: FragmentFirstBinding? = nullprivate val binding get() = _binding!!lazy
@ -0,0 +70,4 @@override fun onDestroyView() {super.onDestroyView()_binding = nullподход безусловно рабочий, но ему лет 8-10)
@ -0,0 +6,4 @@object Screens {fun First(): FragmentScreen = FragmentScreen {почему с большой?
так было в доке, понял
Pull request closed