ওভারভিউ
এই উদাহরণটি দেখায় কিভাবে কোটলিনে একটি বাটনকে View.INVISIBLE বা View.GONE ব্যবহার করে অনদেখা (Invisible) বা সম্পূর্ণ সরানো (Gone) করা যায়।
পূর্বশর্ত
- অ্যান্ড্রয়েড স্টুডিও (কোটলিন)
- View Visibility কনসেপ্ট (Visible, Invisible, Gone)
ধাপ ১: প্রজেক্ট তৈরি করুন
File → New Project → Empty Activity → Language: Kotlin।
ধাপ ২: লেআউট (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"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dp"
android:text="Tutorials Point"
android:textAlignment="center"
android:textColor="@android:color/holo_green_dark"
android:textSize="32sp"
android:textStyle="bold" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="@android:color/white"
android:padding="4dp"
android:text="Click to hide me"
android:textColor="@android:color/holo_red_dark"
android:textSize="24sp"
android:textStyle="bold" />
</RelativeLayout>
ধাপ ৩: MainActivity.kt
package com.example.hidebutton
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
val button: Button = findViewById(R.id.button)
button.setOnClickListener {
// অপশন ১: Invisible - জায়গা বজায় রাখে, শুধু লুকায়
button.visibility = View.INVISIBLE
// অপশন ২: Gone - জায়গাও ফিরিয়ে দেয় (লেআউটে স্পেস নেই)
// button.visibility = View.GONE
Toast.makeText(baseContext, "Button is hidden", Toast.LENGTH_SHORT).show()
}
}
}
ধাপ ৪: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.hidebutton">
<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>
Invisible vs Gone - পার্থক্য
| প্রপার্টি | দৃশ্যমানতা | লেআউট স্পেস | ক্লিকযোগ্য |
|---|---|---|---|
View.VISIBLE | হ্যাঁ | হ্যাঁ | হ্যাঁ |
View.INVISIBLE | না | হ্যাঁ (জায়গা chiếm করে) | না |
View.GONE | না | না (জায়গা ছেড়ে দেয়) | না |
চলান ও পরীক্ষা
- অ্যাপ চালান → বাটন দেখাবে।
- বাটনে ক্লিক করলে এটি লুকিয়ে যাবে (Invisible)।
- লেআউটে এর জায়গা খালি থাকবে (সামনে কিছু নেই কিন্তু স্পেস আছে)।
- যদি
View.GONEব্যবহার করতেন তবে পরের ভিউগুলো উপরে খিসে আসত।
আমionales: XML-এ ডিফল্ট ভিজিবিলিটি সেট করা
<Button
android:id="@+id/button"
android:visibility="gone" // অথবা invisible, visible
... />
অ্যানিমেশন সহ লুকানো/দেখানো
// ফেড আউট করে.GONE
button.animate().alpha(0f).setDuration(300).withEndAction {
button.visibility = View.GONE
}.start()
// ফেড ইন করে.VISIBLE
button.visibility = View.VISIBLE
button.alpha = 0f
button.animate().alpha(1f).setDuration(300).start()
সতর্কতা
View.GONEব্যবহার করলে লেআউট রি-মেজার होता है, পারফরম্যান্স প্রভাবিত হতে পারে (বড় লিস্টে)।- RecyclerView-এ আইটেম লুকাতে
View.GONE+notifyItemChanged()ব্যবহার করুন।