我在用户执行搜索查询时添加了一个进度条,它不会显示在屏幕上。以下是片段:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Button searchButton = (Button) findViewById(R.id.searchButton);
setContentView(R.layout.activity_main); //main layout, which has a child layout called resultsLayout
searchButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
EditText searchString = (EditText) findViewById(R.id.searchString);
search(searchString.getText().toString());
}
});
protected void search(String searchString){
LinearLayout resultLayout = ((LinearLayout) findViewById(R.id.resultsLayout));
resultLayout.addView(DisplayResults.getLoadBar(getApplicationContext()));
//do search
resultLayout.removeAllViews();
}
public static ProgressBar getLoadBar(Context context){
ProgressBar loadBar = new ProgressBar(context);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
loadBar.setLayoutParams(params);
loadBar.setVisibility(View.VISIBLE);
return loadBar;
}
我知道其中一些可能不需要,比如创建时的setVisibility权限,但是我尝试了几件事并且它不起作用。也许没有足够的时间来展示酒吧?(搜索需要大约1.5秒)
我还调试了应用程序,它将ProgressBar显示为布局的子项,但我仍然无法在屏幕上看到它。
答案 0 :(得分:0)
let val = data.entry(department.to_string())
.or_insert(vec!());
val.extend(vec!(employee.to_string()));
您可以尝试此ProgressDialog对象实现。 https://developer.android.com/reference/android/app/ProgressDialog.html
答案 1 :(得分:0)
在if (textBox1.backcolor = Color.Red)
方法
setContentView(resultLayout);
答案 2 :(得分:0)
我意识到android不会为代码中的每条指令更新屏幕,显然它只在函数结束时才这样做。话虽这么说,我必须在一个单独的线程中进行搜索,以便在搜索开始和结束之间出现加载。