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

অ্যান্ড্রয়েডে একশনবার টাইটেল ট্রাঙ্কেট হচ্ছে কিনা যাচাই

অ্যান্ড্রয়েড একশনবার টাইটেল ট্রাঙ্কেশন (Truncation) যাচাই

এই টিউটোরিয়ালে শিখব কিভাবে `isTitleTruncated()` মেথড ব্যবহার করে একশনবারের টাইটেল প্রস্থের চেয়ে বড় হয়ে এলিপসিস (...) দিয়ে কাটা হয়েছে কিনা তা যাচাই করতে হয়। এটি রেসপন্সিভ UI ডিজাইনের জন্য উপযোগী।

প্রয়োজনীয় ধাপসমূহ

ধাপ ১: নতুন প্রজেক্ট তৈরি করুন

Android Studio-তে File → New Project নির্বাচন করে প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট ফাইল

res/layout/activity_main.xml ফাইলে:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:gravity="center"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/text"
        android:textSize="30sp"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

ধাপ ৩: জাভা কোড

src/MainActivity.java ফাইলে:

package com.example.myapplication;

import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView textView;

    @RequiresApi(api = Build.VERSION_CODES.N)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        textView = findViewById(R.id.text);
        
        if (getSupportActionBar() != null) {
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            // লম্বা টাইটেল সেট করুন ট্রাঙ্কেশন টেস্টের জন্য
            getSupportActionBar().setTitle("এটি একটি খুব লম্বা টাইটেল যা স্ক্রিনের প্রস্থ অতিক্রম করবে");
            getSupportActionBar().setSubtitle("সাইরাম");
            
            // টাইটেল ট্রাঙ্কেট হয়েছে কিনা যাচাই
            boolean isTruncated = getSupportActionBar().isTitleTruncated();
            textView.setText("টাইটেল ট্রাঙ্কেট হয়েছে: " + isTruncated);
        } else {
            textView.setText("একশনবার উপলব্ধ নেই");
        }
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem menuItem) {
        if (menuItem.getItemId() == android.R.id.home) {
            finish();
            return true;
        }
        return super.onOptionsItemSelected(menuItem);
    }
}

isTitleTruncated() মেথড

  • রিটার্ন: true যদি টাইটেল টেক্সট একশনবার প্রস্থের চেয়ে বড় হয়ে কাটা হয়
  • false: টাইটেল পুরো দেখায়
  • উপযোগিতা: ডাইনামিক টাইটেলের জন্য লেআউট অ্যাডজাস্টমেন্ট

ট্রাঙ্কেশন হ্যান্ডলিং কৌশল

// ট্রাঙ্কেট হলে সংক্ষিপ্ত টাইটেল দেখান
if (getSupportActionBar().isTitleTruncated()) {
    getSupportActionBar().setTitle("সংক্ষিপ্ত টাইটেল...");
}

// বা টুলবার-এ কাস্টম ভিউ ব্যবহার করুন
Toolbar toolbar = findViewById(R.id.toolbar);
TextView customTitle = new TextView(this);
customTitle.setText("পুরো লম্বা টাইটেল কখনও কাটা হবে না");
customTitle.setEllipsize(TextUtils.TruncateAt.END);
customTitle.setSingleLine(true);
toolbar.addView(customTitle);

XML-এ টাইটেল ট্রাঙ্কেশন কন্ট্রোল

styles.xml-এ:

<style name="CustomActionBar" parent="Widget.AppCompat.ActionBar">
    <item name="titleTextStyle">@style/CustomTitleText</item>
</style>

<style name="CustomTitleText" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="android:maxLines">1</item>
    <item name="android:ellipsize">end</item>
</style>

অ্যাপ্লিকেশন চালানো

রান করলে লম্বা টাইটেলের কারণে "টাইটেল ট্রাঙ্কেট হয়েছে: true" দেখাবে। ছোট টাইটেল দিলে false দেখাবে।

লক্ষ্য করুন

  • ল্যান্ডস্কেপ মোডে ট্রাঙ্কেশন কম হয় (প্রস্থ বেশি)
  • হোম-এাজ-আপ বাটন (ব্যাক অ্যারো) থাকলে টাইটেলের জন্য জায়গা কমে যায়
  • টুলবার (Toolbar) ব্যবহার করলে আরও নিয়ন্ত্রণ পাওয়া যায়
  • API 24+ এ `isTitleTruncated()` কাজ করে
  1. অ্যান্ড্রয়েডে অ্যাকশন বার টাইটেল সেন্টার অ্যালাইন করার পদ্ধতি

  2. অ্যান্ড্রয়েডে ActionBar/Toolbar-এর উচ্চতা পাওয়ার পদ্ধতি

  3. Android-এ অ্যাকশন বারের আকার পরিবর্তন করার পদ্ধতি

  4. অ্যান্ড্রয়েডে স্ট্যাটাস বার কীভাবে লুকাবেন?