スワイプすることでタブを切り替えAndroidのように、YouTube、Googleの音楽アプリ

StackOverflow https://stackoverflow.com/questions/6354115

  •  28-10-2019
  •  | 
  •  

質問

最新のバージョンのアプリは、Google実施していうのをスワイプとタブとタブをクリックできます。破壊も修復もおもしろくな人はより具体的なアイデアをお持ちのどのようにして行われます。

この思い-気軽に批判:

私が最初に思いをはせることではない標準 TabActivity を主催する"子ども活動。Gdp私は全く身に覚えがないのですがだと考えるのカスタム ActivityGroup ます。行のタブを巻きを強打がんの原因となる活動のタブスイッチです。

スワイプのコンテンツのタブ展示興味深い行動です。疑いがあるGestureListenerに付属の主なコンテンツです。としてのタブを強打列から、隣接するタブになります。ここでは水平スクロール可能なグループの ListViews.このような水平スクロール可能なHTMLの部では、すべてのコンテンツがすでに存在するものが見が強打.んないですけど描画行の取り扱いもの(従来は、行内蔵して表示時のスクロールリストを上下しない左/右)。いかもしれないカスタム ListView 実装もあるのですか?ない場合はスクロール側サイドで動作し寄せられる期待を裏切ることなく正 ListView を含む高速スクロールや光の効果が引かれます。

行のタブから ScrollView, るなど、発光効果が強打をいですね。行のタブの内容なんです。

私がいるという精神的なモデルの異なる作品を構成することがニフティのポートします。他の知をよろしくお願いいたします。

役に立ちましたか?

解決

最も価値のある情報源はそれを完全に行う方法はからのソースです IO 2011アプリケーション

スケジュールフラグメントとワークスペースのクラスを調べてください。

ありがとう。

他のヒント

ホーム画面には次のような比phorと同じです。複数のページ、水平方向にスワイプでき、各画面が実行することを行います。 「ロック」動作があります(十分にスワイプすると、新しいタブにジャンプしますが、スワイプしないと、既存の画面に戻ります)。ホーム画面は、タブを使用しているページのインジケーターとして使用します。

あなたが言ったように、タブはスクロールしません。また、スワイプの途中で実際に垂直スクロールすることはできないので、基本的に見つけられるものと同様の簡単な実装です ここ. 。 MultiTouchでは、垂直スクロールにすることができると思いますが、それは本当に奇妙でほとんど不要です。見るのはクールですが、有用性は限られています。 ListViews標準以外に何もする必要はありません ListViews。おそらく上部にカスタムボタンベースのタブウィジェットがあり、スクロールに基づいてボタンスタイルが更新され、右を強調表示されます タブ. 。そして、それはそれについてです。

レイアウトのための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) 方法。

タブを実際に変更したい前に、フリングがどれだけ強力で必要かを判断できます。累積距離を使用することにより e1e2.

戻ることを忘れないでください falsあなたにe onFling または、タッチイベントが下のビューに落ちません。

あなたが言及しているのはです ワークスペースパターン. 。残念ながら、Googleはそれを標準にしていないため、自分で実装する必要があります。

そのためには、を使用する必要があります ViewPager または fragmentpageradapter (プログラミングの例).

私はあなたが探しているものの解決策を見つけたと思います。タブは実際にはアプリのアクションバーにあります:

http://developer.android.com/guide/topics/ui/actionbar.html#tabs

また、第14章 Android for Programmers-アプリ駆動型アプローチ (ISBN 0132121360)このアクションバータブシステムに完全に焦点を当てています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top