Как изменить ширину символа табуляции в EditText - PullRequest
0 голосов
/ 01 июня 2018

Кажется, что EditText использует только один пробел для отображения символа TAB.Как заставить его использовать вместо него два пробела?

Символ табуляции выглядит в обычных текстовых редакторах (desktop: например, vim), как если бы, например, было 2 пробела.Но с точки зрения редактирования это все еще один персонаж.Я имею в виду, если вам нужно удалить его, вы все равно должны удалить только один символ, но не два.Может ли EditText вести себя таким же образом?

Я попытался найти свойство, подобное 'tabWidth', в соответствующей части файла макета, но единственными свойствами, которые содержали 'tab' в своих именах, были:

editable и textIsSelectable

<EditText
        android:id="@+id/textArea"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:maxLength="10000000"
        android:background="#ffffff"
        android:tab...
        />

1 Ответ

0 голосов
/ 01 июня 2018

Используйте TextWatcher

textArea.addTextChangedListener(object : TextWatcher{
        override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
        }

        override fun onTextChanged(p0: CharSequence, p1: Int, p2: Int, p3: Int) {
             // append whitespace after each character here
             textArea.append(" ")
        }

        override fun afterTextChanged(p0: Editable?) {
        }
    })

ps: это код Kotlin, но вы поняли идею

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...