Самый простой способ, который я нашел для создания собственного представления, так что мне не нужно обрабатывать раздражающие вещи, такие как переопределение метода onLayout (), - это заставить его наследовать от LinearLayout. У меня также есть LinearLayout в root связанного XML файла, который я раздуваю, поэтому есть 2 из них в root.
Как я могу оптимизировать это, удалив одно из этого дополнительный LinearLayout, но упрощать создание пользовательских представлений?
MyToolbar.kt:
class MyToolbar @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) :
LinearLayoutCompat(context, attrs, defStyleAttr) {
private val binding = MyToolbarBinding.inflate(LayoutInflater.from(context), this, true)
init {
// [...] Initialization of my view ...
}
}
my_toolbar. xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<!-- Actual content of my view -->
</LinearLayout>