我想使用barteksc / AndroidPdfViewer(https://github.com/barteksc/AndroidPdfViewer)构建一个简单的Android pdf阅读器。
对于“页面,pageWidth,pageHeight”的3个参数,在ViewActivity的“ onRender”函数内的“ pages,pageWidth,pageHeight”错误中,我被卡住了。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_view)
if (intent != null) {
val viewType: String = intent.getStringExtra("ViewType")
if (viewType != null && !TextUtils.isEmpty(viewType)) {
if (viewType.equals("localFile")) {
if (intent.getType().equals("application/pdf")) {
val selectedPdf: Uri = Uri.parse(intent.getStringExtra("FileUri"))
pdfView.fromUri(selectedPdf)
.password(null)
.defaultPage(0)
.enableSwipe(true)
.enableDoubletap(true)
.swipeHorizontal(true)
.pageSnap(true)
.autoSpacing(true)
.pageFling(true)
.onDraw { canvas, pageWidth, pageHeight, displayedPage ->
}.onDrawAll { canvas, pageWidth, pageHeight, displayedPage ->
}.onPageChange { page, pageCount ->
}.onPageError { page, t ->
Toast.makeText(
this@ViewActivity,
"Error while opening page " + page,
Toast.LENGTH_SHORT
)
Log.d("ERROR", "" + t.localizedMessage)
}.onTap { false }
.onRender {
fun onRenderListener(pages, pageWidth, pageHeight) {
fun onInitiallyRendered(pages, pageWidth, pageHeight) {
pdfView.fitToWidth(pages)
}
}
}.enableAnnotationRendering(true)
.load()
}
}
}
}
}
我想知道为什么“ canvas,pageWidth,pageHeight,displayedPage,page,pageCount”不需要类型注释。
对于“ onDraw”和“ onDrawAll”,它们的参数用大括号{}括起来,而对于“ onRender”,“ pages,pageWidth,pageHeight”用括号()括起来。
我应该如何编写.onRender?