Динамическое количество вкладок с Firebase Android - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть группа строк категорий, хранящихся в FirebaseFirestore. Теперь я хочу показать этот список строк с вкладками, используя tabLayout. Это означает, что количество вкладок будет динамическим, которое будет установлено в соответствии с тем, что присутствует в базе данных. На данный момент я знаю только, как показать фиксированное количество вкладок, используя эту строку кода:

TabLayout tabLayout = findViewById(R.id.tabLayout);
 tabLayout.addTab(tabLayout.newTab().setText("Tab1"));
 tabLayout.addTab(tabLayout.newTab().setText("Tab2"));
 tabLayout.addTab(tabLayout.newTab().setText("Tab3"));

Итак, как мне сделать вкладки динамическими, чтобы текст и количество вкладок задавались исходя из того, что поступает из списка строк из моей базы данных? Пожалуйста, помогите.

1 Ответ

0 голосов
/ 26 апреля 2019

Скажите, что каждая вкладка хранится в документе в Firestore в коллекции с именем tabs. Затем вы можете получить все документы в этой коллекции и создать вкладку с идентификатором каждого документа с помощью:

db.collection("tabs")
    .get()
    .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
            if (task.isSuccessful()) {
                for (QueryDocumentSnapshot document : task.getResult()) {
                    Log.d(TAG, document.getId() + " => " + document.getData());
                    tabLayout.addTab(tabLayout.newTab().setText(document.getId()));
                 }
            } else {
                Log.d(TAG, "Error getting documents: ", task.getException());
            }
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...