Метод pointerInput
Метод pointerInput интерфейса
Modifier
вешает обработчик на поток событий указателя.
Ключи в параметрах перезапускают блок
при смене данных.
Внутри вызывают detectTapGestures,
detectDragGestures и другие detector-ы.
Синтаксис
Modifier.pointerInput(Unit) {
detectTapGestures { }
}
Параметры
| Параметр | Описание |
|---|---|
keys |
Один или несколько ключей. При их изменении блок перезапускается. |
block |
Suspend-область PointerInputScope
с вызовами detect-функций.
|
Пример
Давайте сменим текст по tap через detectTapGestures:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.gestures.detectTapGestures
import androidx.compose.material3.Text
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.pointer.pointerInput
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
var label by remember { mutableStateOf("abcde") }
Text(
text = label,
modifier = Modifier.pointerInput(Unit) {
detectTapGestures {
label = if (label == "abcde") "12345" else "abcde"
}
},
)
}
}
}
На экране нажатие по тексту переключит
между "abcde" и "12345".
Смотрите также
-
метод
clickable,
готовый tap с индикацией -
метод
draggable,
перетаскивание по одной оси -
метод
combinedClickable,
несколько типов нажатия -
метод
anchoredDraggable,
жест с якорями