Как использовать вид рециркулятора и относительное расположение на экране в Android Studio - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть вид переработчика и относительное расположение ниже представления переработчика. Мой относительный макет состоит из трех текстовых представлений. Мой вид переработчика состоит из трех текстовых представлений и кнопки. Моя проблема заключается в том, что представление рециркулятора прокручивается отдельно, а текстовые представления в относительной компоновке исправлены. Но я хочу, чтобы оба прокручивались, то есть прокрутка экрана должна выполняться как для вида переработчика, так и для относительной компоновки, но не по отдельности. Во время прокрутки мой относительный макет должен быть прикреплен к концу окна рециркуляции. Я много искал для этого, но нет результатов для моего поиска. Итак, попал сюда, пожалуйста, кто-нибудь, помогите мне.

Ответы [ 3 ]

2 голосов
/ 30 сентября 2019

У вас есть 2 варианта, первый (лучший) - создать нижний колонтитул ViewHolder и добавить его в RecyclerView в качестве последнего элемента в адаптере. Или вы можете просто обернуть ваши представления в вертикальный LinearLayout, а затем обернуть его в NestedScrollView следующим образом:

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

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

        <ImageView
            android:id="@+id/image"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:scaleType="centerCrop" />

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:nestedScrollingEnabled="false" />
    </LinearLayout>
</android.support.v4.widget.NestedScrollView>
1 голос
/ 30 сентября 2019

Вы можете добавить представление с текстовыми представлениями в другом макете и добавить в свой переработчик как последний элемент. Затем проверьте posotion в getItemViewType и, если он последний раз возвращает тип нижнего колонтитула, внутри RecyclerAdapter.

private static final int FOOTER = 1;
private static final int CHILD = 2;
// inflates the row layout from xml when needed
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    if(viewType == CHILD){
        View view = mInflater.inflate(R.layout.list_item, parent, false);
        return new ViewHolder(view);
    }
    else if(viewType == FOOTER ){
        View view = mInflater.inflate(R.layout.relative, parent, false);
        return new ViewHolder(view);
    }
    return null;
}


@Override
public int getItemViewType(int position) {
    if (position == getItemCount() - 1) {
        return FOOTER;
    } else {
        return CHILD;
    }
}
1 голос
/ 30 сентября 2019

Для того, чтобы ваш RelativeLayout прокручивался с содержимым вашего RecyclerView, вам нужно добавить RelativeLayout со статическим содержимым в конец списка, который повторяет ваш адаптер. Затем вы переопределяете getItemViewType в адаптере и возвращаете один идентификатор типа для данных в вашем RecyclerView, а другой - для нижнего колонтитула RelativeLayout. Затем в onCreateViewHolder вы будете использовать тип представления для надувания правильного вида (тот, который связывает ваши данные, или другой, который отображает ваш RelativeLayout).

Этот процесс может быть довольно трудоемким,Вы также можете использовать библиотеку типа Epoxy , чтобы создать представление нижнего колонтитула в RecyclerView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...