2013-05-30 55 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