過去数週間、私はRecyclerView
の使い方を学びました。横向きのリストを実装する必要があります。つまり、横向きモードでデバイスを回転させることにより、次のようにします。
私はこれのための最良の解決策を見つけました(RecyclerView
の水平方向の変位を作成する方法 here ))、別の問題が発生しました。アイテムRecyclerView
がデバイスの高さ(横、横)より大きいため、縦と横の変位を同時に作成する必要があります。
私はAndroid LayoutManager
クラスの開発者メソッドを調べましたが、ほとんどのメソッドを理解するのに十分なスキルがありません。また、RecyclerView
を別のRecyclerView
の中に垂直に配置し、すべてのコンテンツを水平に配置してみました、しかしエラーが出ます:
IllegalStateException:RecyclerViewにLayoutManagerがありません
これを改善するために、すべてを削除しました<View ... />
XMLファイルの要素ですが、これでは結果が得られません。
私が何を求めているのかを明確にするために、レイアウトを水平方向と垂直方向の両方にスクロールさせることは可能ですか?.
最も簡単な解決策を考えていなかった、アプリケーションで発生する可能性があったすべての問題にとても腹を立てました。
RecyclerView
は、RecyclerViewが宣言されているメインのファイルとコンテンツが含まれている別の2つのXMLファイルで構成されています。
最も簡単な解決策は、RecyclerView
内にScrollView
を導入することでした。したがって、ScrollView
のおかげですべてのアイテムを一度に垂直方向および水平方向に移動できます。ランドスケープモードではRecyclerView
のおかげでアイテムを移動できます。
activity_main.xml
<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_margin="@dimen/cardIn_margin_ext">
<Android.support.v7.widget.RecyclerView
Android:id="@+id/recycler_view"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:scrollbarStyle="outsideInset"
Android:scrollbars="horizontal" />
</ScrollView>
受け入れられた答えは私にとってはうまくいきませんでした。単純なScrollViewの代わりにHorizontalScrollViewを使用する必要がありました。
<HorizontalScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_margin="@dimen/cardIn_margin_ext">
<Android.support.v7.widget.RecyclerView
Android:id="@+id/recycler_view"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:scrollbarStyle="outsideInset"
Android:scrollbars="horizontal" />
</HorizontalScrollView >