Я хочу создать базовый класс для всех моих пользовательских представлений. Это может быть другой тип, например, RelativeLayout
или NavigationView
.
Итак, я создал abstract class
с обобщениями, которые реализуют самый глубокий класс этих представлений, который их соединяет - View
. Вот что у меня есть:
abstract class MyCustomView<VS : ViewState, V : View<VS>, P : Presenter<VS, V, *>>(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0,
defStyleRes: Int = 0
) : View(context, attrs, defStyleAttr, defStyleRes) { ... }
Но проблема в том, что теперь я могу наследовать только от View
. Как я могу создать какой-то универсальный шаблон, который должен быть потомком View
, чтобы я мог его реализовать и при этом иметь возможность в своем базовом классе использовать override
методы, такие как onAttachedToWindow
?