java - 进度条 setVisibility VISIBLE

标签 java android

我是 JAVA 新手,所以我试图在程序员列表渲染时显示进度条可见,但进度条始终可见

公共(public)类ListActivity扩展AppCompatActivity { 私有(private)Repository存储库;

private final List<Programmer> programmers = new ArrayList<>();

private ListView listView;
private ProgressBar progressBar;


private ProgrammersListAdapter programmersListAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list);

    listView = findViewById(R.id.listView);
    progressBar = findViewById(R.id.progressBar);

    progressBar.setVisibility(View.INVISIBLE);

    repository = CombinedRepository.getInstance();

    // It's important not to change reference of the list provided here. That's why it's final!
    programmersListAdapter = new ProgrammersListAdapter(this, programmers);
    listView.setAdapter(programmersListAdapter);
    refreshProgrammers();
}

void refreshProgrammers(){
    // ToDO: Change Progress bar visibility here
    progressBar.setVisibility(View.VISIBLE);
    this.programmers.clear();

    // Without notifyDataSetChanged - Listview won't know that there's been update to it's data
    this.programmersListAdapter.notifyDataSetChanged();

    repository.getProgrammers(programmers -> {
        this.programmers.clear();
        this.programmers.addAll(programmers);
        this.programmersListAdapter.notifyDataSetChanged();
    });
}

}

最佳答案

onCreate 中删除 progressBar.setVisibility(View.INVISIBLE); 并在 getProgrammers 的回调中进行隐藏:

repository.getProgrammers(programmers -> {
    this.programmers.clear();
    this.programmers.addAll(programmers);
    this.programmersListAdapter.notifyDataSetChanged();
    progressBar.setVisibility(View.GONE); // hide progressBar after data is loaded
});

我还建议使用View.GONE而不是View.INVISIBLE因此进度条在不可见时不会占用任何空间。

关于java - 进度条 setVisibility VISIBLE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61102221/

相关文章:

java - 捕获任何 Eclipse IDE 事件

java - 在MapReduce中解析XML文件

java - Hibernate:每个具体类的表与每个子类的表

Android - notifyDataSetChanged() 和线程

java - 在 Maven 项目中包含本地 jar 文件 - 未找到文件

java - 在Java中添加数组的多维数组

android - 为什么第一次点击 ImageView 不工作?

java - 有什么方法可以获取联系人应用程序的图标?

android - 将 OpenSeaMap 集成到 Android 应用程序中

android - 适用于 Jelly Bean 但不适用于 Kitkat 的相机 API