【问题标题】:Center a ProgressBar in a Custom Dialog在自定义对话框中居中 ProgressBar
【发布时间】:2013-05-30 11:25:39
【问题描述】:

我有一个没有标题或边框的自定义对话框(继承自 android.app.Dialog)。在此对话框中,我添加了一个普通的ProgressBar,并希望将其置于对话框的中心。对话框本身有一个全屏背景图像。除了进度条没有在对话框中居中之外,一切似乎都有效。它看起来像这样:

这是我在 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);

我有什么遗漏或错误吗?

【问题讨论】:

  • 使用相对布局而不是线性布局
  • @chintankhetiya,如果我现有的代码有最小的更改来纠正它,我会使用它。如果没有,我会试试你的解决方案
  • @BasimSherif,我用的是RelativeLayout而不是LinearLayout,但是我没有看到任何变化
  • 您想以编程方式还是通过布局来实现?

标签: android android-layout android-progressbar


【解决方案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);

【讨论】:

  • 这不起作用。顺便说一句,Dialog没有addView,所以我使用了addContentView
【解决方案2】:

试试这个,

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

【讨论】:

  • 现在我根本看不到 ProgressBar
  • 使用相对布局试试我的解决方案
  • 我可以看看你的对话框片段布局 xml 吗?
【解决方案3】:

试试这个, 设置布局高度和宽度FILL_PARENT

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多