Как поместить listview и переработчик в linearlayout - PullRequest
0 голосов
/ 09 июля 2019

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">

<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/list_items"></ListView>
<android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/recycler">

</android.support.v7.widget.RecyclerView>

Мне нужно добавить просмотр списка и переработчик в одном упражнении, но в этом я просто получаю элементы просмотра списка.Элементы представления Recycler не отображаются.

new XML

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:id="@+id/list_items">
    </ListView>
    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:id="@+id/recycler">

    </android.support.v7.widget.RecyclerView>
</LinearLayout>
</ScrollView>

Показывает просмотр списка в 1/4 экрана и оставшуюся часть экрана, отображающую просмотр переработчика.я хочу, чтобы все элементы списка отображались как элементы списка повторного просмотра конца списка.

Ответы [ 2 ]

2 голосов
/ 09 июля 2019

Есть одна хорошая особенность проектирования Android: Weight_sum свойств в линейном макете. В приведенном выше коде внесите изменения, как показано ниже, ...

<LinearLayout 
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="2">
<ListView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />
<android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />

Согласно приведенному выше коду, можете добавить весовую сумму в родительский макет и добавить вес в соответствии с вашим желанием разделить свой макет. проверьте, отредактировав вышеуказанный код как, ..

<LinearLayout 
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="3">
<ListView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="2" />
<android.support.v7.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />

Вы узнаете о том, как работает вес! Может ответ тебе поможет!

0 голосов
/ 09 июля 2019

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

public class WrapListView extends ListView {
    public WrapListView(Context context) {
        super(context);
    }

    public WrapListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        heightMeasureSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 1, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }
}

RecyclerView поддерживает wrap_content из коробки, вам просто нужно вызвать recyclerView.setNestedScrollingEnabled(false);, чтобы сделать прокрутку плавной

Это приведет к аннулированию механизма рециркуляции как ListView, так и RecyclerView, так как высота обоих видов растянута до полной длины,и ни один элемент не будет повторно использован / переработан.

...