Kiedy używać w układzie, który określa ten dialog android:layout_width="match_parent"
otrzymuję ten dialog:Jak utworzyć okno, które będzie pełne w wymiarze horyzontalnym
muszę dialog, który będzie szerszy. Jakieś pomysły?
Kiedy używać w układzie, który określa ten dialog android:layout_width="match_parent"
otrzymuję ten dialog:Jak utworzyć okno, które będzie pełne w wymiarze horyzontalnym
muszę dialog, który będzie szerszy. Jakieś pomysły?
Możesz to zrobić, chwytając obiekt Window
, którego używa okno dialogowe, i resetując szerokość. Oto prosty przykład:
//show the dialog first
AlertDialog dialog = new AlertDialog.Builder(this)
.setTitle("Test Dialog")
.setMessage("This should expand to the full width")
.show();
//Grab the window of the dialog, and change the width
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
Window window = dialog.getWindow();
lp.copyFrom(window.getAttributes());
//This makes the dialog take up the full width
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setAttributes(lp);
Oto wynik końcowy. Zauważ, że istnieje wiele innych stylów, które możesz zrobić w oknie dialogowym, jeśli potrzebujesz dopracować szczegóły (np. Zmienić tło itp.). Kiedy musiałem to robić w przeszłości, zwykle używam tej metody i dostosowuję układ używany w dialogu z setView()
na klasie budowniczej.
Pamiętaj tylko, że może to wyglądać s trange na dużym ekranie, jak na przykład tablet. – wsanville
Co zrobić, jeśli moja klasa rozszerza aplikację i chcę wywołać alertdialog w tym? – ManishSB
Jeśli używasz DialogFragment, ustawienie musi być wykonane w metodzie onStart, zobacz http://stackoverflow.com/questions/23990726/how-to-make-dialogfragment-width-to-fill-parent/26207535 – Eborbob
Innym sposobem rozwiązania tego problemu jest użycie:
import android.support.v7.app.AlertDialog;
zamiast:
import android.app.AlertDialog;
Najprostsze, najszybsze i najlepsze rozwiązanie. To powinna być zaakceptowana odpowiedź. – PerracoLabs
pisać kod XML szablonu i spróbować wypełnić wartość nadrzędną zamiast meczu rodzica – rajpara
@ rajpara 'fill_parent' i' match_parent' do * dokładnie * to samo (obie są stałymi wartości '-1') – Eborbob