Это не совсем то, что вы ищете. Вы можете определить:
public class CustomTextInputLayout @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = R.attr.textInputStyle
) : TextInputLayout(ContextThemeWrapper(context, R.style.Outlined_Theme), attrs, defStyleAttr) { ... }
с помощью:
<style name="Outlined.Theme" parent="">
<item name="textInputStyle">@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox</item>
</style>
Затем в вашем макете используйте:
<com.example.quicksample.CustomTextInputLayout
....
android:hint="Sample">
<com.google.android.material.textfield.TextInputEditText../>
</com.example.quicksample.CustomTextInputLayout>
Ваш код не работает, потому что ContextThemeWrapper(context, R.style.Widget_MaterialComponents_TextInputLayout_OutlinedBox
) 2-й параметр должен быть темой атрибута, а не стилем (это то же самое для TextInputLayout(context, attrs, R.style.Widget_MaterialComponents_TextInputLayout_OutlinedBox)
)