Прикрепить TextView к RecyclerView

Я понимаю, что следующее неверно, но я полагаю, вы можете рассматривать это как псевдокод. Мне интересно, как я могу «прикрепить» весь макет к моему RecyclerView, чтобы при прокрутке вниз макет прокручивался вместе с ним. В настоящее время TextView над RecyclerView фиксируется на экране, тогда как все данные в моем RecyclerView можно прокручивать. Я хочу, чтобы TextView исчезал из виду, когда пользователь также прокручивает страницу вниз. Если вы посмотрите на Instagram, вся информация профиля пользователя в верхней части вашей галереи исчезнет, ​​когда вы прокрутите страницу вниз. Как я могу это сделать? Как я могу добавить TextView программно?

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

<android.support.v7.widget.RecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginBottom="?android:attr/actionBarSize"
    android:padding="@dimen/item_margin"
    android:id="@+id/recycler_view"
    android:clipToPadding="false">

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

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

person Martin Erlic    schedule 23.12.2015    source источник
comment
попробуйте так: github.com/chrisbanes/cheesesquare   -  person Dhaval Parmar    schedule 23.12.2015
comment
Возможный дубликат заголовка и нижнего колонтитула RecyclerView   -  person starkshang    schedule 23.12.2015
comment
github.com/blipinsk/RecyclerViewHeader   -  person IntelliJ Amiya    schedule 23.12.2015


Ответы (4)


Я сделал то же самое, используя эти два замечательных ресурса:

https://plus.google.com/114432517923423045208/posts/EdkQFx1RqhE

https://gist.github.com/gabrielemariotti/4c189fb1124df4556058

                     

person Javad Jafari    schedule 23.12.2015
comment
Не могли бы вы добавить объяснение этих ссылок в ответ? Если в будущем какой-либо из них выйдет из строя, никто не сможет извлечь выгоду из этого ответа. - person Kroltan; 23.12.2015

Вы можете попробовать Android-ObservableScrollView.

Перейдите по следующей ссылке: https://github.com/ksoichiro/Android-ObservableScrollView.

person Rahul Lad    schedule 23.12.2015

Вы можете добавить этот TextView как один из элементов RecyclerView, используя пользовательский RecyclerAdapter, или вы можете использовать ScrollView с LinearLayout в качестве его содержимого вместо RecyclerView, так как не рекомендуется использовать его внутри ScrollView.

person Kyle Emmanuel    schedule 23.12.2015
comment
Понятно... Я действительно не хочу переходить с RecyclerView, так как я уже глубоко укоренился в нем, и он кажется более эффективным для моих целей. Я полагаю, я рассмотрю возможность добавления TextView программно. - person Martin Erlic; 23.12.2015
comment
@bluemunch, это определенно было бы очень эффективно. - person Kyle Emmanuel; 23.12.2015

Одно из возможных решений: вы можете рассматривать свой TextView как один из элементов RecyclerView, но он будет иметь другой вид.

 @Override
public int getItemViewType(int position) {
    if (position == 0) {
        return HEADER;
    } else {
        return NORMAL_ITEM;
    }
}

@Override
public StandardViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    if (viewType == HEADER) {
        //inflate your textview layout header. Create a viewholder                  //for it
    } else {
        // inflate normal layour
    }
}

@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
    if (getItemViewType(position) == HEADER) {
        // BIND header View
    } else {
        //BIND NormalView
    }
}
person Tin Tran    schedule 24.03.2016