Визуализация составного представления, созданного в файле JAVA / Kotlin, в формате XML - PullRequest
0 голосов
/ 20 сентября 2019

Я создаю представление в моем файле Kotlin и устанавливаю некоторые свойства, такие как цвет текста и шрифт.enter image description here

class TestTextView(context: Context) : AppCompatTextView(context) {

    init{
        setTextColor(ContextCompat.getColor(context, android.R.color.holo_blue_dark))
    }
}

Теперь, когда я использую это представление в XML и пытаюсь его отобразить, оно не отображается синим цветом

<com.mindvalley.core.view.TestTextView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Test"
        android:layout_centerInParent="true"/>

Добавление снимка экранадля того же.Есть ли способ визуализации точного цвета, размера и шрифта TextView, созданного в файле Kotlin, в файле XML?

1 Ответ

0 голосов
/ 20 сентября 2019

Представления в Android имеют несколько конструкторов.

public AppCompatTextView(Context context) {
    this(context, null);
}

public AppCompatTextView(Context context, AttributeSet attrs) {
    this(context, attrs, android.R.attr.textViewStyle);
}

public AppCompatTextView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(TintContextWrapper.wrap(context), attrs, defStyleAttr);

    mBackgroundTintHelper = new AppCompatBackgroundHelper(this);
    mBackgroundTintHelper.loadFromAttributes(attrs, defStyleAttr);

    mTextHelper = new AppCompatTextHelper(this);
    mTextHelper.loadFromAttributes(attrs, defStyleAttr);
    mTextHelper.applyCompoundDrawablesTints();

    mTextClassifierHelper = new AppCompatTextClassifierHelper(this);
}

Когда представление завышено из XML-файла, используется конструктор с атрибутом -atal-less, и вы не переопределяете этот.

При определении пользовательского представления вы должны переопределить каждый из конструкторов суперкласса , или только самый богатый, добавив аннотацию @JvmOverloads ранее.

⚠️ Это примечание, которое следует использовать с осторожностью: https://medium.com/@mmlodawski/https-medium-com-mmlodawski-do-not-always-trust-jvmoverloads-5251f1ad2cfe

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...