एंड्रॉइड में एक्शन बार विजिबिलिटी प्रोग्रामेटिक रूप से जांचें
यह ट्यूटोरियल दिखाता है कि getSupportActionBar().isShowing() मेथड का उपयोग करके कैसे जांचा जाए कि एक्शन बार वर्तमान में विजिबल है या नहीं।
चरण 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="#E3F2FD"
android:text="जांच हो रही है..."/>
</LinearLayout>
चरण 3: एक्टिविटी कोड (src/MainActivity.java)
package com.example.actionbarcheck;
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("सैराम");
}
// विजिबिलिटी जांचें
checkActionBarVisibility();
}
private void checkActionBarVisibility() {
boolean isShowing = getSupportActionBar() != null && getSupportActionBar().isShowing();
String message = "एक्शन बार विजिबल: " + (isShowing ? "हां ✓" : "नहीं ✗");
statusText.setText(message);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
}
महत्वपूर्ण बिंदु
getSupportActionBar()null लौटाता है यदि थीम में एक्शन बार नहीं है (जैसे NoActionBar थीम)isShowing()केवल तभी true लौटाता है जब एक्शन बार वास्तव में विजिबल हो- आप
getSupportActionBar().hide()औरshow()से विजिबिलिटी टॉगल कर सकते हैं
एक्शन बार छिपाने/दिखाने के लिए
// छिपाएं
getSupportActionBar().hide();
// दिखाएं
getSupportActionBar().show();
// टॉगल करें
if (getSupportActionBar().isShowing()) {
getSupportActionBar().hide();
} else {
getSupportActionBar().show();
}
थीम आवश्यकता
सुनिश्चित करें कि आपके styles.xml या themes.xml में पैरेंट थीम में एक्शन बार शामिल हो:
<style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- एक्शन बार शामिल है -->
</style>
<!-- यह एक्शन बार छुपा देगा -->
<style name="Theme.MyApp.NoActionBar" parent="Theme.MaterialComponents.DayNight.NoActionBar">
</style>
चरण 4: टेस्ट करें
- ऐप चलाएं - डिफ़ॉल्ट रूप से एक्शन बार विजिबल होगा
- स्टेटस टेक्स्ट "एक्शन बार विजिबल: हां ✓" दिखाएगा
- कोड में
getSupportActionBar().hide()जोड़कर टेस्ट करें
