miałem RecyclerView w Scrollview takiego:RecyclerView wewnątrz Scrollview, niektóre elementy nie są pokazane
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--other stuff-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
</LinearLayout>
<!--other stuff-->
</ScrollView>
i rzecz RecyclerView
„s jest RelativeLayout
, wewnątrz którego znajduje się EditText
oraz inne poglądy. Model layout_height
tego RelativeLayout
i EditText
jest zarówno wrap_content
. Użytkownik może wprowadzić do tego EditText
bez limitu długości/linii, aby wysokość każdego elementu była inna.
Potem okazało się, że getItemCount()
w Adapter
powraca prawdziwa wartość, ale onBindViewHolder()
nazywa błędnych razy (mniej niż powinno być), więc nie wystarczy, aby pokazać wszystkie elementy.
Znalazłem, że tak się stanie, jeśli napiszę: recyclerView.setNestedScrollingEnabled(false)
. Ale nie mogę usunąć tej linii. Gdybym to zrobił, RecyclerView
nie będzie płynnie przewijał i nie jest zgodny z innymi widokami wewnątrz samych ScrollView
i ScrollView
.
To zdarzenie występuje w wersji 6.0, ale nie w wersji 4.1.
Połączyłem się z Google na tej stronie: https://code.google.com/p/android/issues/detail?id=213914 i powiedział mi, że jest to poprawka dla RecyclerView
. Możesz odwiedzić tę stronę, abyś mógł lepiej zrozumieć pytanie i mój cel (jest tam mały przykładowy projekt, aby pokazać tam problem). Nie zgadzam się z nim nawet teraz i chcę rozwiązać problem. Proszę, pomóżcie z góry.
spróbuj ustawić android: fillViewport = "true" w scrollview –
@LucasPaolillo Cóż, to nie pomaga. – ywwynm
z Androidem: fillViewPort = "true", zmień wysokość układu liniowego na match_parent –