У меня есть фрагмент xml в TabLayout. TabLayout находится в макете CollapsingToolbar, который сворачивается при прокрутке содержимого фрагментов в TabLayout вниз. У меня есть один фрагмент, где мне нужен TextView над recyclerView.NestedScrollview + TextView + RecyclerView
Если у меня есть макет, как показано ниже, взятый из this question I asked before:
<LinearLayout>
<NestedScrollView
<TextView>
</TextView>
</NestedScrollView>
<View>
</View>
<RecyclerView>
</RecyclerView>
</LinearLayout>
Он работает нормально, пока TextView не имеет так много информации, что он заполняет или занимает большую часть экрана, RecyclerView заканчивает использование оставшееся пространство в целях отображения:
|------------------| |<TextView-------->| |<---------------->| |<---------------->| |<---------------->| |<---------------->| |</TextView------->| |<RecyclerView---->| |</RecyclerView--->| |__________________|
Так recyclerview остается с минимальным пространством для просмотра. Если Textview занимает весь экран, recyclerView просто не отображается.
Взятые из this SO Question Если раскладка:
<FrameLayout>
<NestedScrollView
<TextView>
</TextView>
</NestedScrollView>
<View>
</View>
<RecyclerView>
</RecyclerView>
</FrameLayout>
только recyclerView дисплеи и TextView просто не существует.
Если раскладка:
<NestedScrollView>
<LinearLayout
<TextView>
</TextView>
<View>
</View>
<RecyclerView>
</RecyclerView>
</LinearLayout>
</NestedScrollView>
TextView просто показывает, есть ли содержание в RecyclerView или нет.
Как я могу иметь TextView свиток из окна достаточно, чтобы раскрыть recyclerview поэтому экран может перейти от этого:
|------------------| |<TextView-------->| |<---------------->| |<---------------->| |<---------------->| |<---------------->| |</TextView------->| |<RecyclerView---->| |</RecyclerView--->| |__________________|
к этому:
|------------------| |<---------------->| |</TextView------->| |<RecyclerView---->| |<---------------->| |<---------------->| |<---------------->| |<---------------->| |</RecyclerView--->| |__________________|
Мой текущий XML-код, где отображается только RecyclerView, а не TextView:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<TextView
android:id="@+id/item_shipping_shipping_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start|left"
android:padding="@dimen/margin_16"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</android.support.v4.widget.NestedScrollView>
<View
android:id="@+id/line43"
android:layout_width="match_parent"
android:layout_height="@dimen/line_height"
android:background="@color/light_gray"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</LinearLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/item_shipping_fragment_recyclerview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</FrameLayout>
не уверен, но попробовать, установив высоту макета зрения переработчиков match_parent и высота framelayout является также wrap_content так попробовать, изменив его тоже или оба вместе –
Хорошо, я попробовал это, установите оба в match_parent, все произошло, что RecyclerView был единственным отображаемым представлением. Я попытался изменить FrameLayout на LinearLayout, и единственный вид, который был виден, был TextView – x10sion
, у вас есть только одно текстовое представление, то почему вы поместили textview в nestedscrollview? попробуйте удалить scrollview –