📜  Kotlin 中的动态文本切换器

📅  最后修改于: 2022-05-13 01:54:54.265000             🧑  作者: Mango

Kotlin 中的动态文本切换器

Android TextSwitcher是一个用户界面小部件,包含多个 textView 并一次显示一个。 Textswitcher 是 View Switcher 的子类,用于为一个文本设置动画并显示下一个。

在这里,我们以编程方式在 Kotlin 文件中创建 TextSwitcher。

首先,我们按照以下步骤创建一个新项目

  1. 单击File ,然后单击New => New Project
  2. 之后包括 Kotlin 支持,然后单击下一步。
  3. 根据方便选择最小的 SDK,然后单击下一步按钮。
  4. 然后选择Empty activity => next => finish

修改activity_main.xml文件

在这个文件中,我们使用了 TextSwitcher、Buttons 并设置了它们的属性。

XML


  
    


XML

    DynamicTextSwitcherInKotlin
    Next
    Prev


Kotlin
package com.geeksforgeeks.myfirstkotlinapp
  
import androidx.appcompat.app.AppCompatActivity
  
import android.os.Bundle
import android.view.Gravity
import android.view.animation.AnimationUtils
import android.widget.Button
import android.widget.TextSwitcher
import android.widget.TextView
import android.graphics.Color
import androidx.constraintlayout.widget.ConstraintLayout
  
class MainActivity : AppCompatActivity() {
  
    private val languages = arrayOf("Java","Python","Kotlin","Scala","C++")
    private var index = 0
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        val textSwitcher = TextSwitcher(this)
  
        textSwitcher.setFactory {
            val textView = TextView(this@MainActivity)
            textView.gravity = Gravity.TOP or Gravity.CENTER_HORIZONTAL
            textView.textSize = 32f
            textView.setPadding(175, 50, 100, 200)
            textView.setTextColor(Color.BLUE)
            textView
        }
        textSwitcher.setText(languages[index])
  
        val c_Layout = findViewById(R.id.constraint_layout)
        //add textSwitcher in constraint layout
        c_Layout?.addView(textSwitcher)
  
  
        val textIn = AnimationUtils.loadAnimation(
            this, android.R.anim.slide_in_left)
        textSwitcher.inAnimation = textIn
  
        val textOut = AnimationUtils.loadAnimation(
            this, android.R.anim.slide_out_right)
        textSwitcher.outAnimation = textOut
  
        // previous button functionality
        val prev = findViewById


XML


  

    
        
            
  
            
        
    

  


更新字符串.xml 文件

在这里,我们使用字符串标签更新应用程序的名称。

XML


    DynamicTextSwitcherInKotlin
    Next
    Prev

在 MainActivity.kt 文件中创建 TextSwitcher

首先,我们声明一个数组语言,其中包含用于 textView 的语言列表。

private val textList = arrayOf("Java","Python","Kotlin","Scala","C++")

然后,我们创建TextSwitcher并为 textView 设置属性,例如文本颜色、文本大小。

val textSwitcher = findViewById(R.id.textSwitcher)

使用此在布局中添加TextSwitcher

val c_Layout = findViewById(R.id.constraint_layout)
        //add textSwitcher in constraint layout
        c_Layout?.addView(textSwitcher)

科特林

package com.geeksforgeeks.myfirstkotlinapp
  
import androidx.appcompat.app.AppCompatActivity
  
import android.os.Bundle
import android.view.Gravity
import android.view.animation.AnimationUtils
import android.widget.Button
import android.widget.TextSwitcher
import android.widget.TextView
import android.graphics.Color
import androidx.constraintlayout.widget.ConstraintLayout
  
class MainActivity : AppCompatActivity() {
  
    private val languages = arrayOf("Java","Python","Kotlin","Scala","C++")
    private var index = 0
  
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        val textSwitcher = TextSwitcher(this)
  
        textSwitcher.setFactory {
            val textView = TextView(this@MainActivity)
            textView.gravity = Gravity.TOP or Gravity.CENTER_HORIZONTAL
            textView.textSize = 32f
            textView.setPadding(175, 50, 100, 200)
            textView.setTextColor(Color.BLUE)
            textView
        }
        textSwitcher.setText(languages[index])
  
        val c_Layout = findViewById(R.id.constraint_layout)
        //add textSwitcher in constraint layout
        c_Layout?.addView(textSwitcher)
  
  
        val textIn = AnimationUtils.loadAnimation(
            this, android.R.anim.slide_in_left)
        textSwitcher.inAnimation = textIn
  
        val textOut = AnimationUtils.loadAnimation(
            this, android.R.anim.slide_out_right)
        textSwitcher.outAnimation = textOut
  
        // previous button functionality
        val prev = findViewById

AndroidManifest.xml 文件

XML



  

    
        
            
  
            
        
    

  

作为模拟器运行:

单击上一个按钮,然后我们在TextView中获取其他文本。