Я пытаюсь нарисовать вид фрагмента на холсте, чтобы экспортировать его как изображение. Я попытался выполнить следующий запрос: Android: нарисовать вид на холсте и мне удалось нарисовать раздутый вид на холсте, но когда я пытаюсь нарисовать на нем вид фрагментов, он портит компоновку.
Это мой хост-фрагмент:
<FrameLayout
android:layout_width="1000px"
android:layout_height="1000px"
android:visibility="invisible"
tools:ignore="PxUsage"
android:id="@+id/fragment_host"/>
Вот как я рисую на холсте
supportFragmentManager.beginTransaction()
.replace(R.id.fragment_host, MyTrackViewerFragment().apply {
onCreateControls = {
bitmap = Bitmap.createBitmap(1000, 1000, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
it.apply {
layoutParams = LinearLayout.LayoutParams(1000, 1000)
measure(measuredWidth, measuredHeight)
layout(0, 0, 1000, 1000)
draw(canvas)
}
findViewById<ImageView>(R.id.preview).setImageBitmap(bitmap)
ImageView.ScaleType.CENTER_CROP
supportFragmentManager.beginTransaction().remove(this).commit()
}
})
.commit()
Это результат (черный квадрат - изображение для предварительного просмотра view):

Фрагмент в хосте фрагмента dr aws правильно, также после вызова метода меры и макета.
Другой фрагмент дает аналогию результаты (квадрат - это изображение для предварительного просмотра):

Чего мне не хватает?
РЕДАКТИРОВАТЬ: кажется, layout(0, 0, 1000, 1000)
портит макет, но я не могу понять, почему