एंड्रॉइड में AlertDialog की पोजीशन सेट करना
यह उदाहरण दिखाता है कि WindowManager.LayoutParams और Gravity का उपयोग करके डायलॉग को स्क्रीन पर किसी भी स्थान पर कैसे प्रदर्शित किया जाता है।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं।
चरण 2: लेआउट XML (खाली - डायलॉग प्रोग्रामेटिकली बनेगा)
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" />
चरण 3: MainActivity में डायलॉग पोजीशन लॉजिक
MainActivity.java:
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Gravity;
import android.view.WindowManager;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// डायलॉग बनाएं और दिखाएं
showDialogAtPosition(Gravity.BOTTOM); // अन्य विकल्प: TOP, CENTER, LEFT, RIGHT, आदि
}
private void showDialogAtPosition(int gravity) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("पोजीशन डेमो");
builder.setMessage("यह डायलॉग स्क्रीन के नीचे दिखाई दे रहा है!");
builder.setCancelable(false);
builder.setPositiveButton("OK", (dialog, which) -> dialog.dismiss());
builder.setNegativeButton("रद्द", (dialog, which) -> dialog.dismiss());
AlertDialog dialog = builder.create();
dialog.show();
// डायलॉग दिखने के बाद पोजीशन सेट करें
if (dialog.getWindow() != null) {
dialog.getWindow().setGravity(gravity);
// वैकल्पिक: मार्जिन/ऑफसेट जोड़ें
WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.y = 100; // नीचे से 100px ऊपर (BOTTOM ग्रेविटी के साथ)
// params.x = 50; // बाएं/दाएं ऑफसेट के लिए
dialog.getWindow().setAttributes(params);
}
}
}
सामान्य ग्रेविटी विकल्प
| ग्रेविटी | विवरण |
|---|---|
Gravity.TOP | स्क्रीन के शीर्ष पर |
Gravity.BOTTOM | स्क्रीन के नीचे (कीबोर्ड के ऊपर) |
Gravity.CENTER | स्क्रीन के केंद्र में (डिफ़ॉल्ट) |
Gravity.LEFT / START | बाएं किनारे पर |
Gravity.RIGHT / END | दाएं किनारे पर |
Gravity.TOP | Gravity.START | ऊपर-बाएं कोने में |
Gravity.BOTTOM | Gravity.END | नीचे-दाएं कोने में |
कस्टम पोजीशन के लिए x, y ऑफसेट
WindowManager.LayoutParams params = dialog.getWindow().getAttributes(); params.gravity = Gravity.TOP | Gravity.START; params.x = 50; // बाएं से 50px params.y = 200; // ऊपर से 200px dialog.getWindow().setAttributes(params);
चरण 4: Manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<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>
ऐप चलाएं
डिवाइस कनेक्ट करें, Run पर क्लिक करें। ऐप शुरू होते ही डायलॉग स्क्रीन के नीचे (या सेट की गई पोजीशन पर) दिखाई देगा।