我試圖從主Activity實例化Progress Bar
並將其動態添加到視圖中。當我這樣做,我得到一個酒吧:編程的Android進度條風格
ProgressBar bar = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal);
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
bar.setLayoutParams(params);
bar.setId(mInt);
LinearLayout layout = (LinearLayout) findViewById(R.id.layout);
layout.addView(bar);
我開始一個新項目,只包含上面的代碼,和進度條顯示正確。
如果我將以下代碼行添加到上面的代碼中,屏幕空白一秒鐘,然後顯示一個半滿的條。我希望看到一秒鐘空的酒吧,然後達到50%。
try {
Thread.sleep(2000);
} catch ...{
}
bar.setProgress(50);
但是,如果我添加一些這樣的代碼,則欄和更改顯示正確。
Button b = new Button(this);
b.setText("change bar");
b.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
changeProg();
}
});
public void changeProg() {
switch (state) {
case 0: bar.setProgress(100); state = 1; break;
case 1: bar.setProgress(127); state = 2; break;
case 2: bar.setProgress(33); state = 0; break;
}
}
如果我嘗試的過程與循環自動調用changeProg()
每隔一段時間,屏幕只是停留空白 - 沒有小部件都顯示,無論它們是由XML描述或Pro語法上沒有什麼區別。
我無法理解此行爲存在的原因。