2010-01-29 72 views
14

我使用android:theme =「@ android:style/Theme.Dialog」創建了非最大化活動,使其看起來像一個對話框。我需要改變屏幕上的活動的位置,但我沒有找到如何做到這一點?安卓對話框活動位置

回答

3

Theme.Dialog作爲其父創建自定義主題:

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

因此,對於每個項目在您想要更改的對話主題中,在Android清單中使用CustomDialogTheme而不是Theme.Dialog。詳情請參閱the android developper docs

+3

我想,他想改變對話框的位置! – Farhan 2011-06-22 06:57:54

22

要更改位置(主題設置爲Theme.Dialog),可以在活動的裝飾視圖附加到窗口後覆蓋活動裝飾視圖的LayoutParams的重力,大小和座標。下面是一個例子:

@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

使用.setGravity()

progDialog = ProgressDialog.show();

progDialog.getWindow()。setGravity(Gravity.BOTTOM);