Создание текстов один за другим (эффект пишущей машинки) в Android KotlinAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Создание текстов один за другим (эффект пишущей машинки) в Android Kotlin

Сообщение Anonymous »


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

Моя активность включает в себя три фрагмента, использующих ViewPager2, которые я буду называть фрагментами A, B и C. Среди них фрагмент B загрузит еще одно неопределенное количество фрагментов. Я назову его Фрагментом X1, X2... возможно, X99 или около того. В этих фрагментах будет использоваться эффект пишущей машинки, поэтому я поместил функцию анимации текста во фрагмент B, так как подумал, что будет лучше там, где загружаются фрагменты, а не в каждом фрагменте Xn.

fun TextView.textDisplay(text: Int) { val targetstring: Int = текст если (текстаним) { for(i в 1..targetstring){ println(targetstring.toString()) Thread.sleep(textanimspeed.toLong()) } // Эффект пишущей машинки } еще { println (целевая строка) } // отображаем тексты сразу } Во фрагменте B также есть некоторые значения, которые я планирую использовать для установки размера текста, скорости анимации и того, будет ли он анимирован или нет.

var textsize:Byte = 10 вар textanimspeed: Байт = 100 вар textanim: Boolean = true а затем попытался загрузить фрагмент X1.

(активность как FragmentB).TextView1.textDisplay(R.string.stringX1) Оказывается, эта строка кода недоступна, а «textDisplay» является «неразрешенной ссылкой».

Если я удалю параметр получателя «TextView» из textDisplay(text: Int) и исполняемый код, студия Android не скажет, что он неразрешен, но он все равно недоступен. Прежде всего, я считаю, что тексты должны быть анимированы внутри TextView. Запустив приложение, я не увидел никаких сообщений.

Второе, что я попробовал, — это скопировать Java-код с эффектом пишущей машинки и вставить его, чтобы студия Android автоматически конвертировала его в Kotlin. В результате появились красные пятна, но я от них избавился. Я создал новый класс TypeWriterView.kt, код которого приведен ниже:

класс TypeWriterView: AppCompatTextView { частная переменная mText: CharSequence? = ноль частная переменная mIndex = 0 частная переменная mDelay: Long = 150 // в мс конструктор(контекст: Контекст): супер(контекст) конструктор(контекст: Контекст, атрибуты: AttributeSet?): супер(контекст, атрибуты) частный вал mHandler: Handler = Handler() частный valcharacterAdder: Runnable = объект: Runnable { переопределить fun run() { текст = mText!!.subSequence(0, mIndex++) if (mIndex
Ответить

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

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

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

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

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