2013-05-30 63 views
0

我有一個自定義對話框(從android.app.Dialog繼承),沒有標題或邊框。在此對話框中,我添加了一個正常的ProgressBar,並希望將其居中放置在對話框中。對話框本身有一個可以在整個屏幕上伸展的背景圖片。除了進度條沒有在對話框中居中,一切似乎都奏效。它看起來像這樣:居中對話框中的進度條

ProgBar Not Centered in Dialog

這是我的customDialog類中使用,進度條添加到對話框代碼:

ProgressBar progBar = new ProgressBar(context); 

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
addContentView(progBar, layoutParams); 

getWindow().setGravity(Gravity.CENTER); 

有我丟失的東西,或出錯?

感謝,
Rajath

+0

[檢查我的答案的佈局可能是有用的](http://stackoverflow.com/questions/13341560/how-to-create-a-custom-dialog-box-in-android/13342157#13342157) –

+0

使用相對佈局而不是線性佈局 –

+0

@chintankhetiya,如果我現有的代碼中有很小的改變來糾正它,我會使用它。如果沒有,我會嘗試你的解決方案 – rajath

回答

1

試試這個..

ProgressBar progBar = new ProgressBar(context); 

    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 
    lp.addRule(RelativeLayout.CENTER_HORIZONTAL, progBar.getId()); 
    lp.addRule(RelativeLayout.CENTER_VERTICAL, progBar.getId()); 

    parentLayout.addView(progBar, lp); 
+0

這沒有奏效。順便說一句,沒有addView的對話框,所以我用addContentView – rajath

1

試試這個,

 LinearLayout.LayoutParams ll = (LinearLayout.LayoutParams)b.getLayoutParams();  
ll.gravity = Gravity.CENTER; 
progBar.setLayoutParams(ll); 
+0

沒有做任何改變。 – rajath

+0

檢查我編輯的答案 –

+0

現在我看不到ProgressBar – rajath

0

試試這個, 組佈局HIGHT和寬度FILL_PARENT

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 
params.gravity = Gravity.CENTER; 
progBar.setLayoutParams(params); 
+0

沒有做任何改變 – rajath