Как я могу сделать текст автоматически прокручиваемым в Jetpack Compose?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как я могу сделать текст автоматически прокручиваемым в Jetpack Compose?

Сообщение Anonymous »


Я динамически загружаю текст из списка объектов, которые содержат разный текст от одного объекта к другому. Некоторые текстовые значения достаточно короткие, чтобы поместиться в текстовом представлении, а другие слишком длинные. Таким образом, идея состоит в том, чтобы длинные текстовые значения начинали автоматическую прокрутку влево с удобной для чтения скоростью, то есть после ожидания в 500L миллисекунд, раскрывая зачеркнутый/скрытый текст до последнего символа, а затем останавливаясь до следующего обновление текста, которое, если оно длиннее, чем представление «Текст», должно начинаться с исходной позиции и прокручиваться через 500L миллисекунд, в противном случае оно должно оставаться неподвижным, если это короткий текст.
Я пробовал несколько способов манипулировать кодом, но безрезультатно. Вот пример кода, с которым я работаю: в котором текст прокручивается, но происходит только вручную путем перетаскивания. Я хочу, чтобы он выполнял автоматическую прокрутку после задержки в 500L миллисекунд от времени обновления:
Столбец( модификатор = Модификатор .height(25.dp) .fillMaxSize() .background(color =lideCaptionBg, shape = RoundedCornerShape(16.dp)) .clickable {columnClicked.value = true}, HorizontalAlignment = Alignment.CenterHorizontally, вертикальноеРасположение = Расположение.Центр, ) { val textState = запомнить { Animatable(0f) } val ScrollState = RememberScrollState() LaunchedEffect(Единица измерения) { в то время как (истина) { val targetValue = if (textWidth < 800) (textWidth - 800).toFloat() else 0F textState.animateTo(targetValue,animationSpec = tween(800)) задержка(500л) textState.animateTo(0F, анимацияSpec = tween(800)) задержка(4000л) } } Ряд( модификатор = Модификатор .fillMaxSize() .padding(конец = 8.dp, начало = 8.dp) .width(IntrinsicSize.Min) .horizontalScroll(scrollState) .background(Цвет.Прозрачный), ГоризонтальноеРасположение = Расположение.Центр, вертикальноеВыравнивание = Выравнивание.ЦентрВертикально ) { Текст( текст = stringResource( R.string.song_art_slide_caption, // %s от %s
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»