SlidingDrawer: লেগেসি কম্পোনেন্ট (বর্তমানে ডিপ্রিকেটেড)
সতর্কতা: SlidingDrawer API লেভেল ১৭ (Android 4.2) থেকে ডিপ্রিকেটেড। আধুনিক অ্যাপে DrawerLayout (NavigationView সহ) বা BottomSheet ব্যবহার করুন। এই টিউটোরিয়াল শুধু লেগেসি কোড বুঝতে/রক্ষা রক্ষার জন্য।
পদক্ষেপ ১: প্রজেক্ট তৈরি করুন
Android Studio-তে নতুন প্রজেক্ট তৈরি করুন।
পদক্ষেপ ২: লেআউট XML (activity_main.xml) - রোটেশন ট্রিক
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="4dp"
tools:context=".MainActivity">
<SlidingDrawer
android:id="@+id/slidingDrawer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:handle="@+id/handler"
android:content="@+id/content"
android:rotation="180">
<ImageView
android:id="@+id/handler"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/ic_arrow_upward_black_24dp"
android:rotation="270" />
<LinearLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:rotation="180">
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/image" />
</LinearLayout>
</SlidingDrawer>
</LinearLayout>
পদক্ষেপ ৩: MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// SlidingDrawer কোনো জাভা কোড ছাড়াই কাজ করে
}
}
রোটেশন ট্রিক ব্যাখ্যা
- SlidingDrawer ডিফল্টলি ডান/নিচ থেকে স্লাইড করে
- পুরো ড্রোয়ারকে ১৮০° ঘুরিয়ে (android:rotation="180") বাম দিক থেকে স্লাইড করা অনুকরণ করা হয়েছে
- হ্যান্ডেল এবং কন্টেন্টও প্রত্যেক ১৮০°/২৭০° ঘুরিয়ে সঠিক অবস্থানে আনা হয়েছে
আধুনিক বিকল্প: DrawerLayout (Navigation Drawer)
<!-- activity_main.xml -->
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="https://schemas.android.com/apk/res/android"
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- মূল কন্টেন্ট -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- বাম দিকের ড্রোয়ার (NavigationView) -->
<com.google.android.material.navigation.NavigationView
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/drawer_menu" />
</androidx.drawerlayout.widget.DrawerLayout>
// Java-তে খোলা/বন্ধ DrawerLayout drawerLayout = findViewById(R.id.drawerLayout); drawerLayout.openDrawer(GravityCompat.START); // বাম দিক থেকে drawerLayout.closeDrawer(GravityCompat.START);
BottomSheet বিকল্প
নিচ থেকে স্লাইড আপ প্যানেলের জন্য BottomSheetBehavior বা ModalBottomSheetDialogFragment ব্যবহার করুন।