web-dev-qa-db-ja.com

ナビゲーションドロワーでViewPagerを使用するアクションバータブ

要件:-ナビゲーションドロワーでViewPagerを使用するアクションバータブ。

ナビゲーションドロワーの例を作成できます

http://www.omgubuntu.co.uk/wp-content/uploads/2013/07/sidebar.jpg

ViewPagerを個別に使用するアクションバータブ。

http://developer.Android.com/design/media/action_bar_pattern_considerations.png

しかし、両方を同時に使用しようとすると、問題が発生します。

フラグメントを使用してナビゲーションドロワーを作成し、フラグメントを使用してアクションバータブを作成できます。ただし、両方の例の最初のアクティビティはフラグメントアクティビティです。

ナビゲーションドロワーの一部であるフラグメントにアクションバータブを実装するにはどうすればよいですか?

10
user1586758

主なアクティビティには、次のレイアウトを使用してください。

<?xml version="1.0" encoding="utf-8"?>
<Android.support.v4.widget.DrawerLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/drawer_layout"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent" >

    <Android.support.v4.view.ViewPager
        Android:id="@+id/viewpager_container"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent"
        Android:background="#ffe6e1d4"
        Android:focusable="true"
        Android:focusableInTouchMode="true" />    

    <ListView
        Android:id="@+id/left_drawer"
        Android:layout_width="240dp"
        Android:layout_height="match_parent"
        Android:layout_gravity="left"
        Android:listSelector="@drawable/drawer_list_selector"        
        Android:background="@color/drawer_bg" />

</Android.support.v4.widget.DrawerLayout>

FragmentPagerAdapterを APPTabsAdapter のように記述します。

これが私のプロジェクトの1つでそれを構築した方法です。

必要に応じて、助けを求めることができます。

OR

あなたはこれから助けを得ることができます GitHub Repo

ありがとう。

6
jagmohan

アクションバーのタブを使用する際の問題は、引き出しが表示されたときに、タブがアクションバーの一部であるため、タブの下に表示されることです。

代わりにtabHostを使用してみましたが、はるかにうまく機能します。

ここでソースコードを取得します: https://github.com/jiahaoliuliu/DrawerWithTabsAndViewPager

ここにそれについての少しの説明があります:

  1. 最初のレベルには、v4サポートライブラリのドロワーがあります
  2. ドロワー内の最初の要素はtabHostで、コンテンツの幅と高さを0に設定しました。
  3. タブホストの下に、ビューページャーがあります。

すべてが作成されたら、タブホスト用のリスナーとviewPager用のリスナーを作成します。ユーザーが任意のタブをクリックすると、ビューページャーが現在のアイテムを設定します。その逆も同様です。

コーディングをお楽しみください!

8
jiahao

お気づきのように、ActionBarタブはNavigation Drawerとこのデザインモードではうまく機能しません API 21で非推奨になりました とにかく。

SlidingTabsの例 from Android開発者は、サードパーティのライブラリ依存関係を含めることなくこの効果を実現するためにクラスを使用しました。結果には非常に満足しています。 a ビデオチュートリアル も。

1
Tim Rae