Khi tôi sử dụng trong cách bố trí, trong đó quy định cụ thể thoại android:layout_width="match_parent"
này tôi nhận được hộp thoại này:Làm thế nào để tạo ra hộp thoại sẽ được đầy đủ trong chiều ngang
Tôi cần thoại mà sẽ rộng hơn. Bất kỳ ý tưởng?
Khi tôi sử dụng trong cách bố trí, trong đó quy định cụ thể thoại android:layout_width="match_parent"
này tôi nhận được hộp thoại này:Làm thế nào để tạo ra hộp thoại sẽ được đầy đủ trong chiều ngang
Tôi cần thoại mà sẽ rộng hơn. Bất kỳ ý tưởng?
Bạn có thể làm điều đó bằng cách lấy đối tượng Window
mà hộp thoại sử dụng và đặt lại chiều rộng. Dưới đây là ví dụ đơn giản:
//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);
Đây là kết quả cuối cùng. Lưu ý rằng có nhiều kiểu dáng hơn bạn có thể làm cho hộp thoại nếu bạn cần tinh chỉnh mọi thứ (như thay đổi nền, v.v.). Khi tôi đã phải làm điều này trong quá khứ, tôi thường sử dụng phương pháp này và tùy chỉnh bố cục được sử dụng trong hộp thoại với setView()
trên lớp trình tạo.
Chỉ cần nhớ rằng điều này có thể trông trange trên màn hình lớn, chẳng hạn như máy tính bảng chẳng hạn. – wsanville
Điều gì xảy ra nếu lớp của tôi mở rộng Ứng dụng và tôi muốn gọi alertdialog trong đó? – ManishSB
Nếu sử dụng DialogFragment, cài đặt phải được thực hiện theo phương thức 'onStart', xem http://stackoverflow.com/questions/23990726/how-to-make-dialogfragment-width-to-fill-parent/26207535 – Eborbob
Một cách khác để khắc phục điều này là sử dụng:
import android.support.v7.app.AlertDialog;
thay vì:
import android.app.AlertDialog;
Giải pháp đơn giản, nhanh nhất và tốt nhất. Đây sẽ là câu trả lời được chấp nhận. – PerracoLabs
gửi mã layout xml của bạn và cố gắng lấp đầy giá trị cha mẹ thay vì trận đấu mẹ – rajpara
@ rajpara 'fill_parent' và' match_parent' làm * chính xác * cùng một điều (cả hai đều là hằng số có giá trị '-1') – Eborbob