私は2つのViewPager
を持っています。今クライアントは、ViewPager
(3つのListView
)を下に展開して、上部にViewPager
をオーバーレイする可能性を追加したいと考えています。私がViewPager
の両方をScrollView
のListView
の底に入れたら、ViewPager
は動作を停止しました。最初にRelativeLayout
に入れて、すべてのListView
に上部のパディングを追加し、背景をnull
に設定しましたが、そのうちトップViewPager
はクリック可能ではありません。これをどうやって動かすことができますか?ViewPagerと別のViewPagerをオーバーレイする方法
2
A
答えて
0
それは複雑だと私はステップのいくつかが欠けてもよいが、基本的に何をしなければならないことは以下の通りです:
- は
LinearLayout
で2つのViewPager
Sを入れてください。親がその親の高さに一致する間、子はラップされます。 AbsListView.OnScrollListener
を実装し、3つのListView
のOnScrollListener
をこの実装に設定します。- この実装では(
onScrollStateChanged(AbsListView view, int scrollState)
またはonScroll(final AbsListView listView, int firstVisibleItem, int visibleItemCount, int totalItemCount)
)、現在と古いスクロール位置のデルタを取得する - 距離と方向(正しい符号、本質的に)を得るスクロール - エッジケースを制御して、2つの
ViewPager
のy座標をそれに応じて変更します。
0
問題は非常に面白そうでした。問題を自分で解決しようとしたproject at Githubを追加しました。プロジェクトをクローンして実行すると、何が起こるかを見ることができます。
を含むViewPager
の内部にNestedScrollView
があり、下部にViewPager
があることが考えられます。
RecyclerView 23.2.0
以上でのみ動作することに注意してください。だから、NestedScrollView
は目的を果たしますが、それはあまりにもいくつかの不要な動作を生成し、あなたのbuild.gradle
compile 'com.android.support:recyclerview-v7:23.2.0'
に以下を追加する必要があります。たとえば、最下部のリストViewPager
は、リストが入力されると自動的に下にスクロールします。だから私は、あなたが断片はViewPager
たびにスワイプされている場合、ここで適切なスクロールを処理する必要が私のMainActivity
mNestedScrollView.smoothScrollTo(0, 0);
の内側に、以下を追加する必要がありました。私はViewPager
の両方でonPageChangeListener
を追加し、コメントも追加しました。
メインレイアウトファイルactivity_main.xml
では、両方の高さを固定しなければならないことを覚えておく必要があります。ViewPager
を修正してください。あなたの要件に応じてlayout_height
を変更することを検討するかもしれません。
乾杯!
関連する問題
- 1. ViewPagerを使用するViewPagerの設定方法match_parent
- 2. [ViewPager] [ツールバー]のみViewPager
- 3. ViewPagerにネストされたViewPager
- 4. ViewPager
- 5. viewpager
- 6. ViewPager
- 7. 戻るボタンとViewPager
- 8. AndroidエミュレータとViewPager
- 9. ViewPagerとTabLayout
- 10. Android ViewPagerとListView
- 11. ViewPagerとNullObjectReferenceエラー
- 12. ViewPagerとデータベース
- 13. ViewPagerオブジェクトを別のアクティビティに渡す
- 14. 垂直ViewPager内の水平ViewPager
- 15. は、例えば、別のViewPager見える
- 16. TabLayoutとViewPagerのフラグメントを別のフラグメントに置き換える方法
- 17. ViewPagerをカスタマイズする
- 18. ViewPagerでButton.setOnClickListenerを書く方法
- 19. カスタムViewPager
- 20. フラグメントオーバーラップツールバーViewPager
- 21. ViewPager Glide
- 22. ViewPagerイメージ
- 23. ViewPager:バック
- 24. ViewPager OnItemClickListener
- 25. スウィフトコンテナViewPager
- 26. ViewPager +リサイクルビュー?
- 27. キャッチViewPager
- 28. Android:複数のスナックバー(別々のフラグメント(ViewPager))
- 29. ViewPagerがクラッシュする
- 30. RecyclerViewとViewPagerを正しくバインドする方法は?
赤い矢印が示すユーザーの操作は?それは、 "ListViewの底部の終わりに達している間に"スクロールしていますか?あるいは、スクロールアップするとトップの「ViewPager」を押し出すでしょうか? – kalabalik
トップの「ViewPager」は「すべてか何か」ですか?または、完全にスクロールアウトされていないときに部分的に表示したいのですか? – kalabalik
スクロールアップの開始は、一番上のViewPagerを押し出すか、それを覆う必要があります。上に移動したり、ViewPagerの下に隠れているときに、彼を部分的に見せたいと思います。 –