Загрузка представления внутри фрагмента по щелчку?

У меня есть RelativeLayout с изображением внутри него. Когда я нажимаю ImageView, мне нужно вызвать задачу Async, чтобы получить некоторые данные и отобразить их в нижней части экрана в RecyclerView. Нравится:

До щелкнув что-либо:

Загрузка представления внутри фрагмента по щелчку?

Щелкните ImageView -> (вызывает асинхронную задачу и отображает индикатор выполнения):

Загрузка представления внутри фрагмента по щелчку?

Результат:

Загрузка представления внутри фрагмента по щелчку?

У меня работает исходный макет (первое изображение), но я не уверен, как реорганизовать мой макет, чтобы все это происходило одним щелчком мыши. Мне также нужно было бы иметь возможность увеличить RecyclerView, поскольку я разрешаю пользователю загружать больше «комментариев» в этот нижний раздел.

Упрощенный макет, который у меня сейчас есть, в основном таков:

<!--Does all of this belong in a ScrollView to allow for the comments section at the bottom? -->
    <RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:orientation = "vertical">
        <!-- Lots of TextViews and buttons-->
        <ImageView
            android:id = "@+id/main_picture_with_unknown_size"
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content/>
         <ImageView
            android:id = "@+id/button_comments"
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"                           
            android:background = "@drawable/ic_comments" />

    <!-- Do I need to put the comments section here in a FrameLayout?-->
    </RelativeLayout>

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

вы можете сослаться на это, чтобы помочь вам Создайте список с RecyclerView, и при нажатии кнопки вызовите метод, который инициирует просмотр ресайклера

James Fernandes 05.10.2018 21:50
0
1
31
1

Ответы 1

Сделать это можно так:

  1. Добавьте вид ресайклера в свой макет и скройте его с помощью android:visibility = "gone".
  2. Реализуйте адаптер RecyclerView и установите для него свой RecyclerView
  3. Когда пользователь нажимает на изображение, запускает AsyncTask. После завершения задачи получите список и передайте его адаптеру. Сообщите адаптеру о необходимости обновления себя новыми данными, просто вызвав adapter.notifyDataSetChanged(); из вашей активности. Теперь у вас есть полный обзор ресайклера. Можно установить recyclerView.setVisibility(true);

Чтобы реализовать бесконечную прокрутку, вы можете сделать что-то вроде этого:

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
                @Override
                public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                    if (layoutManager.findLastVisibleItemPosition() == adapter.getItemCount() - 1) {
                          // LOAD MORE COMMENTS AND ADD GIVE THEM TO YOUR ADAPTER 
                    }
                }
            });

Надеюсь, это имеет смысл.

Другие вопросы по теме