大致上的实作,到上一篇就差不多了。但是在使用几天後发现一个问题,如果文章内容太长的话,常常会发生 Google Translate 网页会显示无法翻译的画面。原因是想要利用 url 的 query string 代入原文的方式,长度上是有限制的。
为了解决这个问题,从 WebView (A) 取得原文後,我设了一个字串长度上限。如果长度超过上限的话,我会在 WebView (B) 上显示一排分页的按钮,一次只显示一定文字长度的翻译结果。
虽然这方式有点麻烦,但总算可以绕过字串长度的问题。下面的函式是用来更新分页按钮的呈现:
private fun updatePageViews(size: Int) {
if (size == 1) {
pageContainer.visibility = GONE
return
}
pageContainer.visibility = VISIBLE
pageContainer.removeAllViews()
(pageTextList.indices).forEach { index ->
val textView = TranslationPageIndexBinding.inflate(LayoutInflater.from(activity)).root
textView.text = (index + 1).toString()
textView.tag = index
val params = LinearLayout.LayoutParams(
ViewUnit.dpToPixel(activity, 40).toInt(),
ViewUnit.dpToPixel(activity, 40).toInt()
)
textView.setOnClickListener { translatePage(index) }
pageContainer.addView(textView, params)
}
pageContainer.requestLayout()
}
如果分页只有 1 页的话,并不需要显示按钮列。当分页数目大於 1 时,会产生对应的 TextView
到 container pageContainer
中。
根据网页原文长度来动态调整分页按钮列,让使用者可以方便地切换内容。
>>: DAY10: setTimeout和setImmediate的比较
延续上回~~ 四、再往底下看是主要的Main Content,也就是对於使用者来说目光会停留最久的区...
以下笔记摘录自『 The Go Workshop 』。 切片的核心其实还是阵列,切片只是在阵列外套上...
今日练习档 ԅ( ¯་། ¯ԅ) 来到公式系列的第三天,今日准备的是除法相关的公式,四舍五入、无条件...
「首先,软件架构师也是程序设计师,并持续是个程序设计师。永远不要落入「从程序码中撤离,专注於更高层...
矩阵的相关处理 目录: 0.前言 1.矩阵设置 2.矩阵相乘 3.稀疏矩阵 4.稀疏矩阵的普通转置 ...