feat(webview): 将文本显示改为WebView组件并支持HTML内容展示

- 将activity_fo.xml中的TextView替换为WebView组件
- 在XWebViewActivity中添加content参数用于传递HTML内容
- 实现当URL为空时通过loadData方法加载HTML内容的功能
- 添加startWebNoTopBarForContent方法支持无顶部栏的内容展示
- 设置WebView背景色为黑色以匹配应用主题
- 添加ToolsHelper工具类用于判断URL是否为空
这个提交包含在:
徐勤民 2026-04-15 14:32:25 +08:00
父节点 2d8770040f
当前提交 f47d9ee047
共有 5 个文件被更改,包括 34 次插入11 次删除

文件差异因一行或多行过长而隐藏

查看文件

@ -18,15 +18,12 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
<WebView
android:id="@+id/content"
android:layout_width="0dp"
android:layout_height="300dp"
android:text="采用手工铺贴,按操作规程CD1442要求进行铺贴,将铺层信息填写在表SAMC 31-71《零件铺层信息、生产记录表》中,并扫描上传。 1I型表面胶膜铺贴最大搭接6mm或对接最大间隙1.5mm。按投影线及工装余量刻线进行铺贴。 2织物铺层的方向公差为±5°,铺贴中允许搭接13mm25mm或对接间隙≤1.5mm,拼缝错开至少25mm,同向铺层之间可以每隔4层重复拼缝的错开位置。按投影线及工装余量刻线进行铺贴,加强层铺贴位置公差为投影位置±2.5mm。"
android:textColor="#ff40FF5E"
android:layout_height="0dp"
android:layout_marginTop="10dp"
android:lineHeight="20sp"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tvTaskHeader" />

查看文件

@ -22,6 +22,7 @@ import com.xuqm.base.R
import com.xuqm.base.common.FileHelper
import com.xuqm.base.common.GlideEngine
import com.xuqm.base.common.LogHelper
import com.xuqm.base.common.ToolsHelper
import com.xuqm.base.databinding.ActivityXWebviewBinding
import com.xuqm.base.extensions.loge
import com.xuqm.base.extensions.runWithPermission
@ -33,6 +34,7 @@ import java.io.File
class XWebViewActivity : BaseActivity<ActivityXWebviewBinding>() {
private lateinit var title: String
private lateinit var url: String
private lateinit var content: String
private var hasTopBar: Boolean = true
@ -85,6 +87,7 @@ class XWebViewActivity : BaseActivity<ActivityXWebviewBinding>() {
intent?.apply {
title = getStringExtra("title") ?: ""
url = getStringExtra("url") ?: ""
content = getStringExtra("content") ?: ""
}
viewModel.title.observe(this) {
@ -111,7 +114,11 @@ class XWebViewActivity : BaseActivity<ActivityXWebviewBinding>() {
LogHelper.e("lateInitView")
LogHelper.e(url)
setTitleText(title)
binding.XWebView.loadUrl(url)
if (ToolsHelper.isNull(url)){
binding.XWebView.loadData(content, "text/html", "utf-8")
}else{
binding.XWebView.loadUrl(url)
}
}

查看文件

@ -19,4 +19,11 @@ object XWebViewHelper {
}
context.startActivity(intent)
}
fun startWebNoTopBarForContent(context: Context, content: String) {
val intent: Intent = Intent(context, XWebViewActivity::class.java).apply {
putExtra("content", content)
putExtra("hasTopBar", false)
}
context.startActivity(intent)
}
}

查看文件

@ -5,6 +5,7 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:background="@color/app_color_black"
android:layout_height="match_parent"
tools:context=".web.XWebViewActivity">
@ -20,6 +21,7 @@
android:id="@+id/X_webView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@color/app_color_black"
app:layout_constraintTop_toBottomOf="@id/X_progressBar"
app:layout_constraintBottom_toBottomOf="parent"/>