Обнаружение пролистывания, начиная с EditText [Kotlin] - PullRequest
0 голосов
/ 25 сентября 2019

Я работаю над приложением для Android с помощью Android Studio.

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

Я следовал за первым ответом здесь , чтобы заставить OnSwipeTouchListener работать.(Это работает за пределами основного вида - появляются тосты с надписью «Вы провели пальцем влево»)

Я называю это с помощью

var SV: ScrollView = findViewById(R.id.SV) as ScrollView
SV.setOnTouchListener(object:OnSwipeTouchListener(this@MainActivity) {
            override fun onSwipeTop() {
                Toast.makeText(this@MainActivity, "Top", Toast.LENGTH_SHORT).show()
                println("TOP")
            }
}

Где SV - мой родительский вид прокрутки.

Однако затем я создаю текст редактирования программно и добавляю его:

val myEditText = EditText(this)
linear.addView(myEditText)

Где linear - это дочернее линейное расположение внутри основного вида прокрутки

Я не могу обнаружить пролистывание из текста редактирования ввне этого.Это работает, если вы начинаете снаружи, а затем проводите внутрь.

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

Кто-нибудь может помочь?Любая помощь приветствуется!

1 Ответ

0 голосов
/ 25 сентября 2019

Хорошо.Видимо у вас есть ответ на ваш вопрос.Вы можете использовать

val myEditText = EditText(this)
linear.addView(myEditText)
myEditText.setOnTouchListener(object:OnSwipeTouchListener(this@MainActivity) {
            override fun onSwipeTop() {
                Toast.makeText(this@MainActivity, "Top", Toast.LENGTH_SHORT).show()
                println("TOP")
            }
}

EditText с собственным сенсорным слушателем, так что ваш переопределит прослушивание по умолчанию, а некоторые из EditText функций могут работать неправильно.

Я не уверен, почему вынужно поймать событие свайпа на EditTextЕсли вы хотите прокручивать поведение всего содержимого экрана или его части, я бы порекомендовал вам использовать ViewPager, ViewPager2 или RecyclerView.

Хотя я не знаю требований, поэтому, возможно, перехват EditText имеет решающее значение для вашего приложения.

Надеюсь, это поможет.

...