Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách tắt cuộn GridView trong Android bằng Kotlin

Giới thiệu

Ví dụ này minh họa cách vô hiệu hóa cuộn của GridView trong Android sử dụng Kotlin.

Bước 1: Tạo dự án mới

Mở Android Studio, chọn File → New Project và điền đầy đủ thông tin để tạo dự án mới.

Bước 2: Cấu hình layout (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://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>

Bước 3: Viết code Kotlin (src/MainActivity.kt)

import android.content.Context
import android.os.Bundle
import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import android.widget.*
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    private lateinit var gridView: GridView
    private var imageIDs = arrayOf(
        R.drawable.ronaldo,
        R.drawable.andre,
        R.drawable.bernado,
        R.drawable.carvalho,
        R.drawable.bruno,
        R.drawable.patricio,
        R.drawable.pepe,
        R.drawable.felix,
        R.drawable.semedo,
        R.drawable.ronaldo
    )

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"

        gridView = findViewById(R.id.gridLayout)
        gridView.numColumns = 3
        gridView.adapter = ImageAdapterGridView(this)

        // Vô hiệu hóa cuộn bằng cách xử lý sự kiện chạm
        gridView.setOnTouchListener { _, event ->
            Toast.makeText(this@MainActivity, "Cuộn đã bị tắt", Toast.LENGTH_SHORT).show()
            event.action == MotionEvent.ACTION_MOVE
        }
    }

    inner class ImageAdapterGridView internal constructor(c: Context) : BaseAdapter() {
        private val context: Context = c

        override fun getCount(): Int = imageIDs.size

        override fun getItem(position: Int): Any? = null

        override fun getItemId(position: Int): Long = 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(imageIDs[position])
            return imageView
        }
    }
}

Bước 4: Cập nhật AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.q11">

    <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>

Chạy ứng dụng

Kết nối thiết bị Android thật với máy tính. Trong Android Studio, mở file activity và nhấn biểu tượng Run Cách tắt cuộn GridView trong Android bằng Kotlin trên thanh công cụ. Chọn thiết bị di động và kiểm tra màn hình hiển thị.

Cách tắt cuộn GridView trong Android bằng Kotlin