如果创建扩展父视图的自定义视图,如何从父视图继承所有样式和属性?
例如,如果我在xml中声明SeekBar并设置其样式,则一切正常。如果我不使用其他方法来扩展此视图,则所有默认样式和格式都将消失。
原始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的外观和功能与默认外观完全一样,我需要做些什么?尝试创建一个自定义视图,以添加一些功能而不更改默认的xml样式/主题等。我是否需要重建所有默认的样式和主题,或者是否可以继承它们?