由于我在JetPack撰写之前没有任何使用安卓系统的经验,所以我无法理解这一点。
我正在使用barteksc/AndroidPdfViewer,但是由于这是一个旧的库,所以我需要将它封装在一个可组合的AndroidView()中。这样可以正确地显示PDF。
@Composable
fun PDFView(
byteArray: ByteArray,
) {
AndroidView(
modifier = Modifier
.fillMaxSize(),
factory = { context ->
PDFView(
ContextThemeWrapper(context, R.style.PdfView), null
)
},
update = { pdfView ->
Log.d(TAG, "PDF view UPDATE called")
pdfView
.fromBytes(byteArray)
.autoSpacing(false)
.spacing(25)
.pageFitPolicy(FitPolicy.BOTH)
.load()
}
)
}根据库的文档,设置一些间距和添加背景颜色将导致PDF页面的可视化分离。设置AndroidView的修饰符背景不起作用。因此,我尝试像这样在R.style.PDFView上设置背景(尝试了几个选项):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="PdfView" parent="Theme.MyPDFView">
<item name="colorSurface">@color/blue</item>
<item name="background">@color/blue</item>
<item name="backgroundColor">@color/blue</item>
</style>
</resources>但这仍然改变不了背景。要完成这个任务,Theme.MyPDFTheme看起来如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.MyPDFView" parent="Theme.MaterialComponents.DayNight">
<item name="android:statusBarColor">@color/background_material_light</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:navigationBarColor">@color/background_material_light</item>
<item name="android:windowLightNavigationBar">true</item>
</style>
</resources>我还尝试在Theme.kt中设置背景色
private val LightColorPalette = lightColors(
surface = Color.Green,
background = Color.Yellow,但是PDFView的背景并没有改变,是的,设备处于光模式。如何设置此视图的背景?
发布于 2022-01-29 05:40:53
可以使用PDFView设置setBackgroundColor背景色。
factory = { context ->
PDFView(
context,
null
).also {
it.setBackgroundColor(Color.Transparent.toArgb())
}
},然后,使用Modifier设置的背景色将变得可见。完整的例子:
AndroidView(
factory = { context ->
PDFView(
context,
null
).also {
it.setBackgroundColor(Color.Transparent.toArgb())
}
},
update = { pdfView ->
pdfView
.fromStream(pdfView.context.resources.openRawResource(R.raw.sample))
.autoSpacing(false)
.spacing(25)
.pageFitPolicy(FitPolicy.BOTH)
.load()
},
modifier = Modifier
.fillMaxSize()
.background(Color.Red)
)https://stackoverflow.com/questions/70894665
复制相似问题