Мне удалось добавить параметр в мои включения, чтобы я мог повторно использовать макет с немного другой конфигурацией.Но он не отображается в предварительном просмотре Android Studio (я не знаю, может ли Android это сделать), и у меня также есть проблемы с его надуванием.Я не хочу связывать его с действием, потому что я хочу создать растровое изображение вида, поэтому мне нужно накачать и нарисовать его вручную.
Макет для включения:
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="myText" type="String"/>
</data>
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_marginTop="27dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center_horizontal"
android:orientation="horizontal"
>
<TextView
android:id="@+id/months"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{myText}" />
</LinearLayout>
</layout>
Используетсяздесь:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:bind="http://schemas.android.com/apk/res-auto">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center">
<include
layout="@layout/counter_4_1"
bind:myText="@{`Hello World`}" />
</FrameLayout>
</layout>
Это работало без привязки данных:
View checkIds = LayoutInflater.from(context).inflate(R.layout.mylayout, null);
((TextView) checkIds.findViewById(viewId)).setText(text);
int specWidth = View.MeasureSpec.makeMeasureSpec(0 /* any */, View.MeasureSpec.UNSPECIFIED);
checkIds.measure(specWidth, specWidth);
checkIds.layout(0, 0, checkIds.getMeasuredWidth(), checkIds.getMeasuredHeight());
Bitmap b = Bitmap.createBitmap( checkIds.getMeasuredWidth(), checkIds.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
checkIds.draw(c);
С привязкой данных я попытался
View checkIds = DataBindingUtil.inflate(LayoutInflater.from(context),Tools.getLayoutResource(context,countdownSettings.countdownStyle), null,false).getRoot();
Я также включил dataBinding {enabled = true} вприложение build.gradle.
Но данные не отображаются в представлении.