2016-06-24 1 views
0

現在、線形レイアウトの上に表示可能なページx個のビューページャーをレイヤーすることによって、カスタムトグルウィジェット(別名セグメンテッドコントロール、これらのタイプのタブレイアウト)を構築しています。複数ページのAndroidビューページャから一番左に表示可能なページインデックスを取得するにはどうすればよいですか?

この
........|......android screen...|
|..not..|visible|visible|visible|..not..|

同様の問題がpager.getCurrentItem()は一貫して一番左に表示されるアイテムを返さないということです、それは最近、ドラッグページを返します。

これに簡単な解決策がある場合は、私がトラックを維持するためのシステム全体を作ることを試みる前に、聞いてみたいと思います。

ありがとうございます!

答えて

0

ユースケースが何であるか、this libraryのようなものが役立つかどうかは完全にはわかりません。あなたがあなた自身のページングを管理するために喜んでいる場合、これは仕事ができる方法

in the docsを記載されているものであるよう

は、あなたは、findFirstCompletelyVisibleItemPositionにあなたを許すことにLinearLayoutManager新しい設定するので、代わりにViewPagerのRecyclerViewを使用することができますあなたは最初の水平レイアウトマネージャを設定します。

LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false); 
myRecyclerView.setLayoutManager(layoutManager); 

次に、あなたがあなたの処理コードにlayoutManager.findFirstCompletelyVisibleItemPosition()を使用することができます。利用可能な他のメソッドもチェックしてください。最初/最後、完全に/部分的に表示されるアイテムを取得するのに便利です。

このアプローチは、recyclerviewのアダプタ数がセグメント数と同じであることを前提としていますが、必要に応じてスクロールを管理してページングをシミュレートする必要があります。

関連する問題