কম্পিউটার টিউটোরিয়াল

কোটলিন ব্যবহার করে অ্যান্ড্রয়েডে বাটন লুকানো বা অনদেখা করা

ওভারভিউ

এই উদাহরণটি দেখায় কিভাবে কোটলিনে একটি বাটনকে 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নানা (জায়গা ছেড়ে দেয়)না

চলান ও পরীক্ষা

  1. অ্যাপ চালান → বাটন দেখাবে।
  2. বাটনে ক্লিক করলে এটি লুকিয়ে যাবে (Invisible)।
  3. লেআউটে এর জায়গা খালি থাকবে (সামনে কিছু নেই কিন্তু স্পেস আছে)।
  4. যদি 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() ব্যবহার করুন।
  1. Android-এ Intent ব্যবহার করে ফোন কল করার পদ্ধতি

  2. অ্যান্ড্রয়েডে XML স্টাইল ব্যবহার করে কাস্টম বাটন তৈরি করার পদ্ধতি

  3. অ্যান্ড্রয়েডে বাটন অদৃশ্য বা মুছে ফেলার পদ্ধতি

  4. অ্যান্ড্রয়েডে বাটনের কোণাবৃত্তাকার কর্নার তৈরি করার পদ্ধতি