2010-01-29 38 views
14

Tôi đã tạo một hoạt động không được tối đa hóa bằng cách sử dụng android: theme = "@ android: style/Theme.Dialog" để làm cho nó trông giống như một hộp thoại. Tôi cần phải thay đổi vị trí của các hoạt động trên màn hình nhưng tôi không tìm thấy làm thế nào để làm điều này ...Vị trí hoạt động của hộp thoại android

Trả lời

3

Tạo một chủ đề tùy chỉnh với Theme.Dialog như mẹ của nó:

<style name="CustomDialogTheme" parent="@android:style/Theme.Dialog"> 

Vì vậy, đối với từng hạng mục trong chủ đề Hộp thoại mà bạn muốn thay đổi, hãy sử dụng CustomDialogTheme thay vì Theme.Dialog bên trong Tệp kê khai Android. Xem the android developper docs để biết chi tiết.

+3

tôi nghĩ, anh ấy muốn thay đổi vị trí của hộp thoại !!!! – Farhan

22

Để thay đổi vị trí (với chủ đề được đặt thành Theme.Dialog), bạn có thể ghi đè trọng lực, kích thước và tọa độ của LayoutParams trong giao diện trang trí của hoạt động sau khi đã được gắn vào cửa sổ. Dưới đây là một ví dụ:

@Override 
public void onAttachedToWindow() { 
    super.onAttachedToWindow(); 

    View view = getWindow().getDecorView(); 
    WindowManager.LayoutParams lp = (WindowManager.LayoutParams) view.getLayoutParams(); 
    lp.gravity = Gravity.LEFT | Gravity.TOP; 
    lp.x = 10; 
    lp.y = 10; 
    lp.width = 300; 
    lp.height = 300; 
    getWindowManager().updateViewLayout(view, lp); 
} 
1

Sử dụng .setGravity()

progDialog = ProgressDialog.show();

progDialog.getWindow(). SetGravity (Gravity.BOTTOM);

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