要件:-ナビゲーションドロワーでViewPagerを使用するアクションバータブ。
ナビゲーションドロワーの例を作成できます
ViewPagerを個別に使用するアクションバータブ。
しかし、両方を同時に使用しようとすると、問題が発生します。
フラグメントを使用してナビゲーションドロワーを作成し、フラグメントを使用してアクションバータブを作成できます。ただし、両方の例の最初のアクティビティはフラグメントアクティビティです。
ナビゲーションドロワーの一部であるフラグメントにアクションバータブを実装するにはどうすればよいですか?
主なアクティビティには、次のレイアウトを使用してください。
<?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 。
ありがとう。
アクションバーのタブを使用する際の問題は、引き出しが表示されたときに、タブがアクションバーの一部であるため、タブの下に表示されることです。
代わりにtabHostを使用してみましたが、はるかにうまく機能します。
ここでソースコードを取得します: https://github.com/jiahaoliuliu/DrawerWithTabsAndViewPager
ここにそれについての少しの説明があります:
すべてが作成されたら、タブホスト用のリスナーとviewPager用のリスナーを作成します。ユーザーが任意のタブをクリックすると、ビューページャーが現在のアイテムを設定します。その逆も同様です。
コーディングをお楽しみください!
お気づきのように、ActionBarタブはNavigation Drawerとこのデザインモードではうまく機能しません API 21で非推奨になりました とにかく。
SlidingTabsの例 from Android開発者は、サードパーティのライブラリ依存関係を含めることなくこの効果を実現するためにクラスを使用しました。結果には非常に満足しています。 a ビデオチュートリアル も。