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
trên thanh công cụ. Chọn thiết bị di động và kiểm tra màn hình hiển thị.
