fix: 修复国际进港电报详情只读状态下无法滚动
只读态原本通过 EditText.enabled=false 表达,但会一并吞掉触摸滚动手势, 导致文字较多时无法上下查看。改用 focusable/focusableInTouchMode/ cursorVisible/keyListener 组合表达不可编辑,同时保持 enabled=true, 两种状态下文本均可滚动。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -25,6 +25,17 @@ class IntArrTelegramDetailsActivity : BaseBindingActivity<ActivityIntArrTelegram
|
||||
override fun initOnCreate(savedInstanceState: Bundle?) {
|
||||
setBackArrow("国际进港电报详情")
|
||||
binding.viewModel = viewModel
|
||||
|
||||
val originalKeyListener = binding.etContent.keyListener
|
||||
viewModel.isEditable.observe(this) { editable ->
|
||||
binding.etContent.apply {
|
||||
isFocusable = editable
|
||||
isFocusableInTouchMode = editable
|
||||
isCursorVisible = editable
|
||||
keyListener = if (editable) originalKeyListener else null
|
||||
}
|
||||
}
|
||||
|
||||
viewModel.initOnCreated(intent)
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,6 @@
|
||||
android:padding="20dp"
|
||||
android:gravity="top|start"
|
||||
android:text="@={viewModel.telegramContent}"
|
||||
android:enabled="@{viewModel.isEditable}"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="16sp"
|
||||
android:lineSpacingExtra="4dp"
|
||||
|
||||
Reference in New Issue
Block a user