【问题标题】:Android progress bar not shown when create programmatically以编程方式创建时未显示Android进度条
【发布时间】:2013-02-23 11:13:24
【问题描述】:

我需要在我的应用程序中显示进度条,但如果我运行它将不可见。我以编程方式创建了进度条。请参考下面我的代码,

ProgressBar progressBar = new ProgressBar(CusProgressActivity.this,
null, android.R.attr.progressBarStyleSmall);
progressBar.setVisibility(View.VISIBLE);
progressBar.bringToFront();

上面的代码是试图显示进度条,我不想使用 xml 文件来显示进度条。我不知道我的代码有什么问题,我需要以编程方式显示我的活动的小进展。

【问题讨论】:

  • 我只是将它添加到我的视图中,但它不会出现,MessageRow.addView(progressBar);

标签: android


【解决方案1】:

使用布局并将进度条作为视图添加到布局中,如下所示 -

    RelativeLayout relativeLayout = new RelativeLayout(this);

    ProgressBar pb = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal);

    relativeLayout .addView(pb);
    setContentView(relativeLayout);

    pb.setProgress(10);

【讨论】:

【解决方案2】:

您必须将视图设置为活动的内容视图,或者使用 ViewGroup.addView 将其添加到视图层次结构中,以将进度条附加到根视图

public void ViewGroup.addView(查看子视图) 在 API 级别 1 中添加

添加子视图。如果子级尚未设置布局参数,则在子级上设置此 ViewGroup 的默认参数。

注意:请勿从 draw(android.graphics.Canvas)、onDraw(android.graphics.Canvas)、dispatchDraw(android.graphics.Canvas) 或任何相关方法调用此方法。

参数 child 要添加的子视图

public void Activity.setContentView(查看视图) - 在 API 级别 1 中添加

将活动内容设置为显式视图。此视图直接放置在活动的视图层次结构中。它本身可以是一个复杂的视图层次结构。调用此方法时,会忽略指定视图的布局参数。默认情况下,视图的宽度和高度都设置为 MATCH_PARENT。要使用您自己的布局参数,请改为调用 setContentView(android.view.View, android.view.ViewGroup.LayoutParams)。 参数 view 想要显示的内容。

【讨论】:

    猜你喜欢
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多