एंड्रॉइड में एक्शन बार शीर्षक ट्रंकेशन (काटना) जांचें
यह ट्यूटोरियल दिखाता है कि getSupportActionBar().isTitleTruncated() मेथड का उपयोग करके कैसे जांचा जाए कि एक्शन बार का शीर्षक स्थान की कमी के कारण काटा (ट्रंकेट) जा रहा है या नहीं।
चरण 1: प्रोजेक्ट बनाएं
AppCompat थीम वाला नया एंड्रॉइड प्रोजेक्ट बनाएं।
चरण 2: लेआउट (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:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="24dp"
tools:context=".MainActivity">
<TextView
android:id="@+id/statusText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textStyle="bold"
android:padding="16dp"
android:background="#FFF3E0"
android:text="ट्रंकेशन जांच हो रही है..."/>
</LinearLayout>
चरण 3: एक्टिविटी कोड (src/MainActivity.java)
package com.example.titletruncationcheck;
import android.os.Build;
import android.os.Bundle;
import android.view.MenuItem;
import android.widget.TextView;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private TextView statusText;
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
statusText = findViewById(R.id.statusText);
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("होम");
getSupportActionBar().setSubtitle("सैराम");
// थोड़ी देर बाद जांचें (लेआउट पास के बाद)
statusText.postDelayed(() -> checkTitleTruncation(), 100);
} else {
statusText.setText("एक्शन बार उपलब्ध नहीं");
}
}
private void checkTitleTruncation() {
boolean isTruncated = getSupportActionBar() != null && getSupportActionBar().isTitleTruncated();
String message = "शीर्षक ट्रंकेटेड: " + (isTruncated ? "हां ✓" : "नहीं ✗");
statusText.setText(message);
statusText.setTextColor(isTruncated ? 0xFFF44336 : 0xFF4CAF50);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
शीर्षक ट्रंकेशन कब होता है?
- शीर्षक बहुत लंबा हो
- एक्शन बार में कई एक्शन बटन हों
- डिवाइस स्क्रीन संकीर्ण हो (छोटी चौड़ाई)
- लैंडस्केप मोड में कम जगह हो
- कस्टम व्यू एक्शन बार में जगह ले रहा हो
लंबे शीर्षक के साथ टेस्ट करने के लिए
// लंबा शीर्षक सेट करें ट्रंकेशन ट्रिगर करने के लिए
getSupportActionBar().setTitle("यह एक बहुत लंबा शीर्षक है जो निश्चित रूप से छोटे स्क्रीन पर काटा जाएगा");
ट्रंकेशन रोकने के तरीके
| विवरण | |
|---|---|
| छोटा शीर्षक उपयोग करें | सबसे सरल समाधान |
android:maxLines="1" + android:ellipsize="end" | कस्टम टूलबार लेआउट में |
| कम एक्शन बटन दिखाएं | showAsAction="ifRoom|collapseActionView" |
| कस्टम टूलबार लेआउट | पूरी चौड़ाई उपयोग करने के लिए |
setDisplayShowTitleEnabled(false) | शीर्षक छुपाएं, कस्टम व्यू उपयोग करें |
कस्टम टूलबार में ट्रंकेशन नियंत्रण
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:title="लंबा शीर्षक..."
app:subtitle="उपशीर्षक"
app:titleTextAppearance="@style/ToolbarTitle" />
<!-- styles.xml -->
<style name="ToolbarTitle" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:maxLines">1</item>
<item name="android:ellipsize">end</item>
<item name="android:textSize">18sp</item>
</style>
चरण 4: टेस्ट करें
- ऐप चलाएं - डिफ़ॉल्ट छोटे शीर्षक के साथ "नहीं" दिखाएगा
- कोड में लंबा शीर्षक सेट करके टेस्ट करें
- लैंडस्केप मोड में घुमाकर टेस्ट करें
- स्प्लिट-स्क्रीन मोड में टेस्ट करें
