android - 如何在三星 S8 等较旧的 Android 设备上自动转到下一个 EditText 而不会出现延迟
问题描述
我有 8 个编辑文本字段。每个字段用于 1 个号码(这是一个电话号码输入屏幕)。输入 1 个数字后,我希望我的光标自动移动到下一个编辑文本。
但是输入有延迟,导致用户体验不流畅。我都试过了:
onEditorAction(EditorInfo.IME_ACTION_NEXT)
和:
secondNumber?.requestFocus()
但没有区别。这是一个非常常见的屏幕,所以我认为应该有一个简单的解决方案?我不允许使用外部库。
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_binding = FragmentFirstBinding.inflate(inflater, container, false)
val views = arrayListOf(
_binding?.firstNumber,
_binding?.secondNumber,
_binding?.thirdNumber,
_binding?.fourthNumber,
_binding?.fifthNumber,
_binding?.sixthNumber,
_binding?.seventhNumber,
_binding?.eighthNumber
)
views.first()?.requestFocus()
_binding?.firstNumber?.addTextChangedListener {
_binding?.firstNumber?.onEditorAction(EditorInfo.IME_ACTION_NEXT)
//_binding?.secondNumber?.requestFocus()
}
_binding?.secondNumber?.addTextChangedListener {
_binding?.secondNumber?.onEditorAction(EditorInfo.IME_ACTION_NEXT)
//_binding?.thirdNumber?.requestFocus()
}
_binding?.thirdNumber?.addTextChangedListener {
_binding?.fourthNumber?.requestFocus()
}
_binding?.fourthNumber?.addTextChangedListener {
_binding?.fifthNumber?.requestFocus()
}
_binding?.fifthNumber?.addTextChangedListener {
_binding?.sixthNumber?.requestFocus()
}
_binding?.sixthNumber?.addTextChangedListener {
_binding?.seventhNumber?.requestFocus()
}
_binding?.seventhNumber?.addTextChangedListener {
_binding?.eighthNumber?.requestFocus()
}
_binding?.eighthNumber?.addTextChangedListener {
Toast.makeText(context, "Reached last digit", Toast.LENGTH_SHORT).show()
}
return _binding?.root!!
}
我的编辑文本:
<EditText
android:id="@+id/first_number"
android:layout_width="30dp"
android:layout_height="40dp"
android:layout_margin="8dp"
android:focusable="true"
android:imeOptions="actionNext"
android:inputType="number"
android:maxLength="1"
android:maxLines="1"
android:singleLine="true"
android:textColor="@color/black" />
解决方案
推荐阅读
- apache - 如何使用 htacess 自定义错误页面
- javascript - Angular - 一个多次使用的组件是否完全自己创建?
- parsing - Vue sfc 规范与 html5 或 xhtml 或任何 xml 格式不兼容
- python - 带有两个应用程序的 urls.py 中的 Django Include()
- react-native - 在我提交表单之前禁用 TouchableHighlight
- odoo - Odoo onchange 无法正常工作
- google-colaboratory - 无法访问 Colaboratory 中的文件夹
- sql - 查询错误(SQL Server)
- ruby-on-rails - Rails API 版本控制大礼包 + rabl
- python - 绘制几个可以切换的图