Как программно «заменить» ListView индикатором выполнения во время загрузки? - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть простой ListView, подобный этому:

listView = view.findViewById(R.id.elements_list);

, но у меня нет доступа к макету, поэтому я не могу разместить индикатор выполнения там. Могу ли я сделать listView невидимым, а затем сделать перед ним progressBar? Я могу хотя бы подумать, как это сделать для всего экрана, где содержится listView, но что, если я хочу, чтобы мои progressBar появлялись точно посередине (по горизонтали и вертикали) listView?

1 Ответ

1 голос
/ 06 февраля 2020

Это в Kotlin, но его можно легко перевести на Java.

Я думаю, вы можете повторно использовать то, что Android API предоставляет бесплатно, чтобы выведите на экран индикатор «Progress Circle», например, показывающий, что что-то загружается:

package com.example.myapplication

import android.app.Dialog
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.view.View
import android.widget.ProgressBar
import androidx.appcompat.app.AppCompatActivity

class MainActivity: AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val dialog = Dialog(this)
        val progressBar = ProgressBar(this)

        progressBar.isIndeterminate = true
        progressBar.visibility = View.VISIBLE

        dialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
        dialog.setContentView(progressBar)
        dialog.show()
    }
}

Вывод будет примерно таким:

image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...