Android делает прокручиваемый два независимых списка в действии

Я работаю в Android Studio в новом приложении, и я хочу создать макет с двумя независимыми прокручиваемыми списками (каждый список прокручивается независимо) в одном и том же действии. Я не могу получить желаемую цель. Не могли бы вы дать мне совет?

Можете поделиться тем, что пробовали?

suvartheec 22.05.2018 13:11
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
36
2

Ответы 2

Я не уверен в эффективном способе, но работал следующим образом. Во-первых, я создал два динамических ListView и ввел их в одно действие.

Он будет вычислять высоту динамически, а не match_parent.

Вот код:

 public void setListViewDynamicHeight(ListView listView) {
        ListAdapter adapter = listView.getAdapter();
        if (adapter == null) {
            return;
        }
        int height = 0;
        int desiredWidth = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.MeasureSpec.UNSPECIFIED);
        for (int i = 0; i < adapter.getCount(); i++) {
            View listItem = adapter.getView(i, null, listView);
            listItem.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
            height += listItem.getMeasuredHeight();
        }
        ViewGroup.LayoutParams layoutParams = listView.getLayoutParams();
        layoutParams.height = height + (listView.getDividerHeight() * (adapter.getCount() - 1));
        listView.setLayoutParams(layoutParams);
        listView.requestLayout();
    }

Вы можете создать его в своем XML-макете следующим образом:

    <LinearLayout
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:orientation = "vertical">

        <android.support.v4.widget.NestedScrollView
            android:id = "@+id/nested_scroll_view_1"
            android:layout_width = "match_parent"
            android:layout_height = "match_parent">

            <TextView
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content"
                android:text = "Hallo!" />

            <!--Other views inside NestedScrollView-->
        </android.support.v4.widget.NestedScrollView>

        <android.support.v4.widget.NestedScrollView
            android:id = "@+id/nested_scroll_view_2"
            android:layout_width = "match_parent"
            android:layout_height = "match_parent">

            <TextView
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content"
                android:text = "Hallo!" />

            <!--Other views inside NestedScrollView-->
        </android.support.v4.widget.NestedScrollView>

    </LinearLayout>

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