编写 VisualTransformation PhoneNumber 将每 3 个数字分开 space
Compose VisualTransformation PhoneNumber separate each 3 numbers by space
我正在尝试在 TextField
可组合
中进行视觉转换
示例 01111111111 -> 011 111 111 11
注意:我想在每 3 个数字后附加 space 任意长度的数字
我想出了一个公式来计算原件到转换后的偏移量,但我不知道如何反转它
val phoneNumberOffsetTranslator = object : OffsetMapping {
override fun originalToTransformed(offset: Int): Int {
return (i % 3) + (4 * (i.div(3)))
}
override fun transformedToOriginal(offset: Int): Int {
// I couldn't figure a formula to do that
return TODO()
}
}
originalToTransformed()
中公式的示例输出
0 -> 0
1 -> 1
2 -> 2
3 -> 4
4 -> 5
5 -> 6
6 -> 8
7 -> 9
8 -> 10
9 -> 12
10 -> 13
很简单:
override fun transformedToOriginal(offset: Int): Int {
return i - i.div(4)
}
我正在尝试在 TextField
可组合
示例 01111111111 -> 011 111 111 11
注意:我想在每 3 个数字后附加 space 任意长度的数字
我想出了一个公式来计算原件到转换后的偏移量,但我不知道如何反转它
val phoneNumberOffsetTranslator = object : OffsetMapping {
override fun originalToTransformed(offset: Int): Int {
return (i % 3) + (4 * (i.div(3)))
}
override fun transformedToOriginal(offset: Int): Int {
// I couldn't figure a formula to do that
return TODO()
}
}
originalToTransformed()
0 -> 0
1 -> 1
2 -> 2
3 -> 4
4 -> 5
5 -> 6
6 -> 8
7 -> 9
8 -> 10
9 -> 12
10 -> 13
很简单:
override fun transformedToOriginal(offset: Int): Int {
return i - i.div(4)
}