У меня есть фрагмент, содержащий код для включения и выключения счетчика индикатора выполнения, но счетчик не выключается, когда это необходимо. Мой XML файл содержит представление списка и счетчик.
Вот мой фрагмент кода:
package com.riverstonetech.gositeuk.ui.england
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import android.widget.ProgressBar
import androidx.fragment.app.Fragment
import com.google.firebase.firestore.FirebaseFirestore
import com.riverstonetech.gositeuk.CountiesActivity
import com.riverstonetech.gositeuk.CountriesActivity
import com.riverstonetech.gositeuk.MainActivity
import com.riverstonetech.gositeuk.R
import kotlinx.android.synthetic.main.fragment_england.*
class EnglandFragment : Fragment() {
// Access a Cloud Firestore instance from your Activity
val db = FirebaseFirestore.getInstance()
lateinit var adapter: ArrayAdapter<String>
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val root = inflater.inflate(R.layout.fragment_england, container, false)
(requireActivity() as CountriesActivity).initializeCustomActionBar(
R.drawable.england_flag,
R.string.title_counties
)
var counties: ArrayList<String>
val docRef = db.collection("UKSites").document("England")
val progressBar = activity!!.findViewById<ProgressBar>(R.id.countiesLoadingProgressBar)
docRef.get()
.addOnSuccessListener { document ->
progressBar?.visibility = ProgressBar.VISIBLE
if (document != null) {
counties = document.get("Counties") as ArrayList<String>
adapter = ArrayAdapter(requireContext(), R.layout.list_item, counties)
countiesListView.adapter = adapter
countiesListView.setOnItemClickListener { parent, view, position, id ->
val intent = Intent(activity!!, CountiesActivity::class.java)
intent.putExtra("COUNTY", counties[position])
startActivity(intent)
}
progressBar?.visibility = ProgressBar.GONE
} else {
Log.d("Debug", "No such document")
}
}
.addOnFailureListener { exception ->
Log.d("Debug", "get failed with ", exception)
}
return root
}
}
А вот мой XML код
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/countiesListView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="60dp"
android:headerDividersEnabled="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
</ListView>
<ProgressBar
android:id="@+id/countiesLoadingProgressBar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
android:indeterminateTint="#FFFFFF"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Я чувствую, что это как-то связано с присутствием представления списка и тем фактом, что у меня есть фрагмент, а не действие.