スワイプすることでタブを切り替えAndroidのように、YouTube、Googleの音楽アプリ
-
28-10-2019 - |
質問
最新のバージョンのアプリは、Google実施していうのをスワイプとタブとタブをクリックできます。破壊も修復もおもしろくな人はより具体的なアイデアをお持ちのどのようにして行われます。
この思い-気軽に批判:
私が最初に思いをはせることではない標準 TabActivity
を主催する"子ども活動。Gdp私は全く身に覚えがないのですがだと考えるのカスタム ActivityGroup
ます。行のタブを巻きを強打がんの原因となる活動のタブスイッチです。
スワイプのコンテンツのタブ展示興味深い行動です。疑いがあるGestureListenerに付属の主なコンテンツです。としてのタブを強打列から、隣接するタブになります。ここでは水平スクロール可能なグループの ListView
s.このような水平スクロール可能なHTMLの部では、すべてのコンテンツがすでに存在するものが見が強打.んないですけど描画行の取り扱いもの(従来は、行内蔵して表示時のスクロールリストを上下しない左/右)。いかもしれないカスタム ListView
実装もあるのですか?ない場合はスクロール側サイドで動作し寄せられる期待を裏切ることなく正 ListView
を含む高速スクロールや光の効果が引かれます。
行のタブから ScrollView
, るなど、発光効果が強打をいですね。行のタブの内容なんです。
私がいるという精神的なモデルの異なる作品を構成することがニフティのポートします。他の知をよろしくお願いいたします。
解決
他のヒント
ホーム画面には次のような比phorと同じです。複数のページ、水平方向にスワイプでき、各画面が実行することを行います。 「ロック」動作があります(十分にスワイプすると、新しいタブにジャンプしますが、スワイプしないと、既存の画面に戻ります)。ホーム画面は、タブを使用しているページのインジケーターとして使用します。
あなたが言ったように、タブはスクロールしません。また、スワイプの途中で実際に垂直スクロールすることはできないので、基本的に見つけられるものと同様の簡単な実装です ここ. 。 MultiTouchでは、垂直スクロールにすることができると思いますが、それは本当に奇妙でほとんど不要です。見るのはクールですが、有用性は限られています。 ListView
s標準以外に何もする必要はありません ListView
s。おそらく上部にカスタムボタンベースのタブウィジェットがあり、スクロールに基づいてボタンスタイルが更新され、右を強調表示されます タブ. 。そして、それはそれについてです。
レイアウトのためのYoutubeアプリは以下のようになっています:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout ...>
...
<TabRow android:id="@id/tabrow" .../>
<Workspace android:id="@id/workspace" ...>
<ListView android:id="@id/uploads" ... />
<ListView android:id="@id/favorites" ... />
<ListView android:id="@id/playlists" ... />
<ListView android:id="@id/subscriptions" ... />
</Workspace>
</LinearLayout>
Googleの紹介2ウィジェットですでに使用されている音楽アプリ
com.google.android.youtube.ポートします。TabRow.
TabRow extends HorizontalScrollView
com.google.android.youtube.ポートします。ワークスペース
ワークスペース広ViewGroup
られているのは、誰にでもできるしていpeekを使用の"ツール".このことで荒れたコードか誤ったです。みに私は、多く展開しております。Somebobyの働きとケベック要塞と議会ビ力可能なものであると思います。
その他のソリューションにより一:私的には、Googleスリリースリチウムイオン電池(lib)をコードこれらのクラスです。この作品のGUIは本当に嬉します。
空のフレーム内にタブを置くことができます。
添付されます GestureDetector.SimpleOnGestureDetector
そのフレームに、オーバーライドがあります onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
方法。
タブを実際に変更したい前に、フリングがどれだけ強力で必要かを判断できます。累積距離を使用することにより e1
と e2
.
戻ることを忘れないでください fals
あなたにe onFling
または、タッチイベントが下のビューに落ちません。
あなたが言及しているのはです ワークスペースパターン. 。残念ながら、Googleはそれを標準にしていないため、自分で実装する必要があります。
そのためには、を使用する必要があります ViewPager または fragmentpageradapter (プログラミングの例).
私はあなたが探しているものの解決策を見つけたと思います。タブは実際にはアプリのアクションバーにあります:
http://developer.android.com/guide/topics/ui/actionbar.html#tabs
また、第14章 Android for Programmers-アプリ駆動型アプローチ (ISBN 0132121360)このアクションバータブシステムに完全に焦点を当てています。