2010-08-02 41 views

Trả lời

77

Bạn có thể gọi ProgressDialog#getWindow#setGravity(...) để thay đổi trọng lực.

Vì vậy:

ProgressDialog dialog = ProgressDialog.show(AContext, "Test", "On the bottom"); 
       dialog.getWindow().setGravity(Gravity.BOTTOM); 
+0

Cảm ơn! Hoạt động hoàn hảo. – oliverwhite

1

Thêm android: gravity = "bottom" vào phần tử XML ngoài cùng trong bố cục có thể làm điều đó. Không chắc chắn nếu điều này di chuyển hộp thoại hoặc nội dung của nó.

+0

won này' đưa hộp thoại đến cuối màn hình. Nó có thể di chuyển nội dung xuống dưới cùng của chế độ xem gốc. –

16

Bên cạnh những câu trả lời khác mà bạn có thể sử dụng LayoutParams.x hoặc LayoutParams.y để cung cấp một offset từ mép nhất định. Ví dụ:

progressDialog = ProgressDialog.show(this, "Title","Text"); 

progressDialog.getWindow().setGravity(Gravity.TOP); 
LayoutParams params = progressDialog.getWindow().getAttributes(); 
params.y = 100; 
progressDialog.getWindow().setAttributes(params); 

Và nó là tốt để bạn có thể biết về LayoutParams.y:

Y vị trí cho cửa sổ này. Với trọng lực mặc định, nó bị bỏ qua. Khi sử dụng TOP hoặc BOTTOM, nó cung cấp độ lệch từ cạnh đã cho.

và khoảng LayoutParams.x:

X vị trí cho cửa sổ này. Với trọng lực mặc định, nó bị bỏ qua. Khi sử dụng LEFT hoặc START hoặc RIGHT hoặc END, nó cung cấp một khoảng trống từ cạnh đã cho.

+0

Cảm ơn thông tin bổ sung. Tôi không cần nó ngày hôm nay, nhưng tôi sẽ trong tương lai. –

3

Nếu bạn đang sử dụng bất kỳ chủ đề tùy chỉnh cho ProgressDialog, Sau đó, bạn có thể thêm các thẻ xml dưới đây để phong cách trong tập tin style.xml của bạn trong những chủ đề tùy chỉnh

<item name="android:layout_gravity">bottom</item>

Các vấn đề liên quan