Un GridView es un ViewGroup que puede mostrar datos de una lista de objetos o bases de datos en una estructura similar a una cuadrícula que consta de filas y columnas. La vista de cuadrícula requiere un adaptador para obtener datos de los recursos. Esta vista se puede desplazar tanto horizontal como verticalmente. La capacidad de desplazamiento de GridView de forma predeterminada está habilitada.
Sin embargo, en este artículo, mostraremos cómo deshabilitar la capacidad de desplazamiento de GridView.
Implementación paso a paso
Paso 1: crea un nuevo proyecto en Android Studio
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Demostramos la aplicación en Kotlin , así que asegúrese de seleccionar Kotlin como idioma principal al crear un nuevo proyecto.
Paso 2: trabajar con el archivo activity_main.xml
Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml . Cree este GridView simple en el diseño.
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="8dp" tools:context=".MainActivity"> <GridView android:id="@+id/gridLayout" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
Paso 3: cree un adaptador para la vista de cuadrícula (MyGridViewAdapter.kt)
Tenemos que crear un adaptador para enviar datos (Imágenes en nuestro caso) a la Vista de cuadrícula. Entonces, cree una nueva clase y asígnele un nombre relevante. Para ver cómo agregamos estas fotos, consulte el Paso 6 .
Kotlin
import android.content.Context import android.view.View import android.view.ViewGroup import android.widget.AbsListView import android.widget.BaseAdapter import android.widget.ImageView // Array of Images, // we used GeeksforGeeks logo private val myImages = arrayOf( R.drawable.logo, R.drawable.logo, R.drawable.logo, R.drawable.logo, R.drawable.logo, R.drawable.logo, R.drawable.logo, ) class MyGridViewAdapter constructor(c:Context): BaseAdapter() { private val context: Context = c override fun getCount(): Int { return myImages.size } override fun getItem(position: Int): Any? { return null } override fun getItemId(position: Int): Long { return 0 } override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { val imageView: ImageView if (convertView == null) { imageView = ImageView(context) imageView.layoutParams = AbsListView.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT ) imageView.scaleType = ImageView.ScaleType.CENTER_CROP imageView.setPadding(30, 30, 30, 30) } else { imageView = convertView as ImageView } imageView.setImageResource(myImages[position]) return imageView } }
Paso 4: trabajar con el archivo MainActivity.kt
Vaya al archivo MainActivity.kt y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.kt . Vincule el adaptador a la vista de cuadrícula en el código principal (MainActivity.kt). Se agregan comentarios dentro del código para comprender el código con más detalle.
Kotlin
import android.annotation.SuppressLint import android.content.Context import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.MotionEvent import android.view.View import android.view.ViewGroup import android.widget.* class MainActivity : AppCompatActivity() { @SuppressLint("ClickableViewAccessibility") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Declare the GridView from the layout val gridView = findViewById<GridView>(R.id.gridLayout) // Specify number of columns gridView.numColumns = 1 // Setting the grid view // adapter as MyGridViewAdapter gridView.adapter = MyGridViewAdapter(this) } }
Salida: ahora ejecute la aplicación
Puede ver que podemos desplazar el GridView verticalmente.
Paso 5: agregue este código en el código principal para deshabilitar el desplazamiento (MainActivity.kt)
Kotlin
import android.annotation.SuppressLint import android.content.Context import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.MotionEvent import android.view.View import android.view.ViewGroup import android.widget.* class MainActivity : AppCompatActivity() { @SuppressLint("ClickableViewAccessibility") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val gridView = findViewById<GridView>(R.id.gridLayout) gridView.numColumns = 1 gridView.adapter = MyGridViewAdapter(this) // What should happen when // the Grid View is touched gridView.setOnTouchListener { _, event -> // A Toast is generated for every touch and // event action is set as ACTION_MOVE Toast.makeText(applicationContext, "Scrolling is Disabled", Toast.LENGTH_SHORT).show() event.action == MotionEvent.ACTION_MOVE } } }
Salida: Ejecutar la aplicación
Puede ver que no podemos desplazar la vista de cuadrícula verticalmente.
Nota: puede agregar la imagen a continuación en el recurso
Ahora simplemente cópielo y péguelo en la carpeta Drawables en la carpeta res . Nómbrelos y haga clic en Aceptar .
Publicación traducida automáticamente
Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA