Как сделать нормальную нумерацию строк в EditText? - PullRequest
0 голосов
/ 17 октября 2019

Я делаю текстовый редактор для Android, и я хотел бы показать номер каждой строки в EditText.

Моим решением было сделать TextView с номерами строк и поместить EditText рядом с TextView. Вот так

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:fillViewport="true">
        <TextView
            android:id="@+id/lines_numbering_view"
            android:layout_width="wrap_content"
            android:minWidth="10dp"
            android:layout_height="match_parent"
            android:textSize="18sp"
            android:text="1\n"/>
        <EditText
            <!--EditText options here-->
        />
    </LinearLayout>

Это отлично работает, но есть один факт ... Если количество строк около 600, когда вызывается метод TextView's onMeasure, приложение останавливается на 0,5секунд.

Итак, что я могу сделать, чтобы улучшить производительность TextView или есть какие-нибудь хорошие решения для нумерации строк?

1 Ответ

0 голосов
/ 17 октября 2019

Вид номера строки можно увидеть и реализовать в виде линейки. Все, что нужно для ввода, это высота строки. Оттуда он может отображать увеличивающиеся номера строк в правильных вертикальных положениях. Не нужно знать количество строк в представлении содержимого.

...