Если вы создаете пользовательское представление, расширяющее родительское представление, как вы можете наследовать все стили и атрибуты от родительского представления?
Например, если я объявляю SeekBar в xml и стилизую его, все работает нормально. Если я расширю это представление без дополнительных методов, все стили и форматирование по умолчанию уйдут.
Оригинальный XML. Стиль здесь работает, как и ожидалось:
<SeekBar
android:id="@+id/seekBar"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_default"
android:layout_marginEnd="@dimen/margin_default"
android:thumb="@drawable/ic_custom_thumb"/>
Если я расширяю SeekBar без добавления чего-либо, все стили будут другими. Например, цвет дорожки отличается, и большой палец отрезан с обеих сторон.
class CustomSeekBar : SeekBar {
constructor(context: Context) : this(context, null)
constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0)
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)}
И xml:
<com.namespace.CustomSeekBar
android:id="@+id/seekBar"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_default"
android:layout_marginEnd="@dimen/margin_default"
android:thumb="@drawable/ic_custom_thumb"/>
Что мне нужно сделать, чтобы этот CustomSeekBar выглядел и функционировал точно так же, как и по умолчанию? Попытка создать настраиваемое представление, которое добавляет некоторые функциональные возможности без изменения стиля / темы оформления по умолчанию и тому подобного. Нужно ли перестраивать все стили и темы по умолчанию или есть способ просто наследовать их?