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?) {
|
override fun initOnCreate(savedInstanceState: Bundle?) {
|
||||||
setBackArrow("国际进港电报详情")
|
setBackArrow("国际进港电报详情")
|
||||||
binding.viewModel = viewModel
|
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)
|
viewModel.initOnCreated(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,6 @@
|
|||||||
android:padding="20dp"
|
android:padding="20dp"
|
||||||
android:gravity="top|start"
|
android:gravity="top|start"
|
||||||
android:text="@={viewModel.telegramContent}"
|
android:text="@={viewModel.telegramContent}"
|
||||||
android:enabled="@{viewModel.isEditable}"
|
|
||||||
android:textColor="@color/black"
|
android:textColor="@color/black"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:lineSpacingExtra="4dp"
|
android:lineSpacingExtra="4dp"
|
||||||
|
|||||||
Reference in New Issue
Block a user