wake-up-neo.com

Android lässt einen Dialog im Vollbildmodus erscheinen

Ich brauche den Dialog, um den Bildschirm auszufüllen, abgesehen von etwas Platz am oberen und unteren Rand .. Ich habe nach einer Lösung gesucht, konnte aber wahrscheinlich keine finden, weil ich sie in einer onClickListener deklariere. Kann jemand bitte eine Lösung geben?

Aktivitätscode:

sort.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                AlertDialog.Builder sort = new AlertDialog.Builder(HomeScreen.this);
                // Get the layout inflater
                LayoutInflater inflater = HomeScreen.this.getLayoutInflater();
                View sortView = inflater.inflate(R.layout.sort_layout, null);
                sort.setView(sortView);
                sort.create().show();
            }
        });

XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:layout_marginBottom="50dp"
    Android:layout_marginTop="50dp"
    Android:background="@color/white"
    Android:orientation="vertical" Android:layout_gravity="center">
    + some more stuff here I dont think it's relevant
</LinearLayout>

enter image description here

22

stellen Sie hier Ihre Bildschirmbreite und -breite auf den Dialog ein

WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
    lp.copyFrom(dialog.getWindow().getAttributes());
    lp.width = width;
    lp.height = height;
    dialog.getWindow().setAttributes(lp);

oder in deinen Styles dann einen Style wie diesen erstellen

 <style name="DialogTheme" parent="Android:Theme.Dialog">

    <item name="Android:layout_width">fill_parent</item>
    <item name="Android:layout_height">fill_parent</item>


    <!-- No backgrounds, titles or window float -->
    <item name="Android:windowBackground">@null</item>
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowIsFloating">false</item>
</style>

erstellen Sie ein Dialogobjekt wie dieses

dialog = new Dialog(this, R.style.DialogTheme);

Bearbeiten ::

holen Sie sich Breite und Höhe für jedes Gerät, das es füllt.

WindowManager manager = (WindowManager) getSystemService(Activity.WINDOW_SERVICE);
    int width, height;
    LayoutParams params;

    if (Build.VERSION.SDK_INT > VERSION_CODES.FROYO) {
        width = manager.getDefaultDisplay().getWidth();
        height = manager.getDefaultDisplay().getHeight();
    } else {
        Point point = new Point();
        manager.getDefaultDisplay().getSize(point);
        width = point.x;
        height = point.y;
    }
41
kalyan pvs

erstellen Sie zunächst einen benutzerdefinierten Stil für den Dialog in der Datei style.xml:

<style name="full_screen_dialog" parent="@Android:style/Theme.Dialog">
    <item name="Android:windowNoTitle">true</item>
    <item name="Android:windowFullscreen">true</item>
    <item name="Android:windowIsFloating">true</item>
    <item name="Android:windowContentOverlay">@null</item>
    <item name="Android:windowAnimationStyle">@Android:style/Animation.Dialog</item>
    <item name="Android:windowSoftInputMode">stateUnspecified|adjustPan</item>
    <item name="Android:windowBackground">@Android:color/transparent</item>
</style>

Dann setzen Sie dieses Thema auf Ihren Alert Dialog

 AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(this,  R.style.full_screen_dialog));

Oder Sie können eine neue Aktivität aufrufen und dieser Aktivität als Design in Ihrer Manifestdatei diesen benutzerdefinierten Stil zuweisen ...

11
Piyush

Dies kann für jemanden hilfreich sein. Ich möchte, dass ein Dialog die gesamte Bildschirmbreite einnimmt. viel gesucht, aber nichts brauchbares gefunden. Endlich hat das für mich funktioniert:

mDialog.setContentView(R.layout.my_custom_dialog);
mDialog.getWindow().setBackgroundDrawable(null);

nachdem Sie dies hinzugefügt haben, wird mein Dialog in voller Bildschirmbreite angezeigt.

3
Rahul Sharma

versuche dies

aktivität, für die der Stil "Theme.Dialog" festgelegt wurde:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.your_layout);

getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
}
3
mdDroid

Objekt wie unter dem Thema erstellen

Dialog objD = new Dialog(this,     Android.R.style.Theme_Translucent_NoTitleBar);

Ich denke, Sie sollten dies versuchen:

Im dialogFragment :

@Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setStyle(DialogFragment.STYLE_NORMAL, Android.R.style.Theme_Black_NoTitleBar_Fullscreen);
        }
0
siddharth patel

Erstellen Sie auf einfachste Weise einen Vollbilddialog wie folgt:

<style name="DialogFullScreenTheme" parent="Theme.AppCompat.Light.DialogWhenLarge">
    <item name="windowNoTitle">true</item>
    <item name="Android:statusBarColor">@color/colorPrimaryDark</item>
</style>

dann:

dialog = new Dialog(this, R.style.DialogFullScreenTheme);
0
Tushski
   Dialog dialog2 = new Dialog(context, R.style.DialogTheme);
    dialog2.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog2.getWindow().setBackgroundDrawable(null);
    dialog2.setContentView(R.layout.dialog_img);
    WindowManager.LayoutParams lp = dialog2.getWindow().getAttributes();
    Window window = dialog2.getWindow();
    lp.copyFrom(window.getAttributes());
    lp.width = WindowManager.LayoutParams.MATCH_PARENT;
    lp.height = WindowManager.LayoutParams.MATCH_PARENT;
    window.setAttributes(lp);
    lp.gravity = Gravity.CENTER;
    final ImageView imgprofile=(ImageView)dialog2.findViewById(R.id.img_centre);
    Picasso.with(context)
            .load(arrayImages.get(position).get("image"))
            .resize(800,1000)
            .centerInside()
            .into(imgprofile, new Callback() {

                @Override
                public void onSuccess() {

                }

                @Override
                public void onError() {
                    imgprofile.setImageResource(R.drawable.user);
                }
            });
    dialog2.show();

Fügen Sie in Ihrer Datei dialog_img.xml eine Bildansicht mit scaleType (fitXY) hinzu.

0
niks_ahlawat