异步任务中的代码:
@Override
protected void onPreExecute() {
super.onPreExecute();
ScrollView sv = (ScrollView)findViewById(mScrollViewID);
sv.removeAllViews();
pb = new ProgressBar(mContext, null, android.R.attr.progressBarStyleSmall);
pb.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
pb.setIndeterminate(true);
pb.setVisibility(View.VISIBLE);
TextView tv = new TextView(mContext);
tv.setText("Some text here.");
sv.addView(pb);
}
请注意最后的TextView
- 如果我将其添加到ScrollView
,则会显示正常。但是,我似乎无法让ProgressBar
显示任何内容。这是我第一次使用控件 - 我错过了一些愚蠢的东西吗?
编辑:如果重要,则使用的ScrollView
在XML中定义为:
<ScrollView android:id="@+id/scrollview0" android:layout_width = "match_parent" android:layout_height="match_parent"
android:fillViewport="true" android:padding="5dp">
答案 0 :(得分:3)
当您动态创建ProgressBar时,会出现很多问题
我建议通过xml创建一个ProgressBar
并设置默认可见性GONE
答案 1 :(得分:0)
此链接可能有所帮助:Update progressbar inside asynctask
答案 2 :(得分:0)
如果您在tv
后添加pb
,则deffinatyl会显示错误?
这是因为ScrollView
只托管一个孩子。那么您需要在LinearLayout
中添加ScrollView
,然后在Linear layout
中添加其他内容