En Android , ScrollView incorpora múltiples vistas dentro de sí mismo y permite desplazarse por ellas.
En este artículo, analizaremos cómo crear mediante programación una vista de desplazamiento en Kotlin.
Comencemos creando primero un proyecto en Android Studio. Para hacerlo, siga estas instrucciones:
- Haga clic en Archivo , luego en Nuevo y luego en Nuevo proyecto y asigne el nombre que desee.
- Luego, seleccione Compatibilidad con el idioma Kotlin y haga clic en el botón siguiente.
- Seleccione el SDK mínimo , lo que necesite.
- Seleccione Actividad vacía y luego haga clic en finalizar .
Modificar archivo activity_main.xml
El segundo paso es diseñar nuestra página de diseño. Aquí, usaremos LinearLayout para obtener la Vista de desplazamiento del archivo Kotlin.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/layout" tools:context=".MainActivity"> </LinearLayout>
Adición de imágenes
Necesitaremos algunas imágenes para usar en la aplicación. Puede usar las imágenes que desee, pero las imágenes deben copiarse desde la ruta de nuestra computadora local a la carpeta app/res/drawable.
Crear vista de desplazamiento en el archivo MainActivity.kt
Abra app/src/main/java/yourPackageName/MainActivity.kt. En este archivo, declaramos una variable ScrollView para crear el widget Scroll View como este:
val scrollView = ScrollView(this) val layoutParams = LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT) scrollView.layoutParams = layoutParams
luego agregue el widget en el diseño usando esto
linearLayout1?.addView(scrollView)
package com.geeksforgeeks.myfirstkotlinapp import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.Gravity import android.view.ViewGroup import android.widget.ImageView import android.widget.LinearLayout import android.widget.ScrollView class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val scrollView = ScrollView(this) val layoutParams = LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT) scrollView.layoutParams = layoutParams val linearLayout = LinearLayout(this) val linearParams = LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) linearLayout.orientation = LinearLayout.VERTICAL linearLayout.layoutParams = linearParams scrollView.addView(linearLayout) val imageView1 = ImageView(this) val params1 = LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) //setting margin params1.setMargins(0, 30, 0, 30) //aligning the layout to center of the screen params1.gravity = Gravity.CENTER imageView1.setLayoutParams(params1) //setting our own downloaded/custom image to the imageView imageView1.setImageResource(R.drawable.image1) linearLayout.addView(imageView1) val imageView2 = ImageView(this) val params2 = LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) params2.setMargins(0, 0, 0, 30) params2.gravity = Gravity.CENTER imageView2.setLayoutParams(params2) imageView2.setImageResource(R.drawable.image2) linearLayout.addView(imageView2) val imageView3 = ImageView(this) val params3 = LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) params3.setMargins(0, 0, 0, 30) params3.gravity = Gravity.CENTER imageView3.setLayoutParams(params3) imageView3.setImageResource(R.drawable.image3) linearLayout.addView(imageView3) val imageView4 = ImageView(this) val params4 = LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) params4.setMargins(0, 0, 0, 30) params4.gravity = Gravity.CENTER imageView4.setLayoutParams(params4) imageView4.setImageResource(R.drawable.image4) linearLayout.addView(imageView4) val linearLayout1 = findViewById<LinearLayout>(R.id.layout) linearLayout1?.addView(scrollView) } }
Archivo AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="i.apps.myapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest>