ビューページャーには、いくつかのフラグメントがあり、そのうちの1つは、ヘッダーとrecyclerviewを持つネストされたスクロールビューを使用します。
<Android.support.v4.widget.NestedScrollView
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
Android:id="@+id/scrollview"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="com.m360.Android.fragment.Members.MemberDetailsFragment">
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical"
Android:paddingTop="20dp">
<header/>
<Android.support.v7.widget.RecyclerView
Android:id="@+id/recycler"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:clipToPadding="false"
Android:paddingTop="0dp" />
</LinearLayout>
</Android.support.v4.widget.NestedScrollView>
タグ「header」は複雑なレイアウトを表しており、コードを大幅に拡張するため、ここには投稿したくありませんでした。
タブを切り替えると、ストレートにリサイクラビューにスクロールします。ヘッダーは非表示です。表示するには上にスクロールする必要があります。
何が原因かについてのアイデアはありますか?回避できる場合は、アダプターで型を使用したくありません。
同様の問題があります。垂直RecyclerView
があります。この垂直RecyclerView
の各アイテムには、Android TVアプリのように、水平RecyclerView
が含まれます。
サポートライブラリを23.4.0から24.0.0にアップグレードすると、自動スクロールが突然表示されました。特に、Activity
を開いてから戻ると、垂直のRecyclerView
が上にスクロールして、現在の水平のRecyclerView
行が切り取られず、行が表示されます。完全に。
_Android:descendantFocusability="blocksDescendants"
_を追加すると、問題が修正されます。
しかし、私は 別のソリューション を見つけました。これも機能します。この場合、垂直のRecyclerView
はFrameLayout
の中に含まれています。 _Android:focusableInTouchMode="true"
_をこのFrameLayout
に追加すると、問題はなくなります。
ここで言及した3番目のソリューション もあります。これは基本的に、子/内部RecyclerView
sでsetFocusable(false)
を呼び出すことで構成されます。私はこれを試していません。
ところで、 AOSPの未解決の問題 があります。
セットするAndroid:focusableInTouchMode="true"
は、LinearLayout
の子レイアウト(NestedScrollView
の場合があります)