ActionbarTabではなくPagerSlidingTabStripを使う。

どうも、プログラミング始めてそろそろ3週間が経とうとしています。
なんだか、日々進んでんだか、進んでないんだか。
とりあえずActionbarTabを使おうとしたら、Lollipop（API Level 21）から、Spinnerとともに非推奨だぞと言われたのでPagerSlidingTabStripを利用する事に。

雑魚なので、躓いたのでメモ

参考は[こちら](https://github.com/jpardogo/PagerSlidingTabStrip)

こういうのを作る。ちなみに出来上がりはこれではない。
![Screen Shot 2015-03-19 at 22.10.19.png](https://qiita-image-store.s3.amazonaws.com/0/55731/c3938ed7-3aa1-0885-4ee4-be58674c1ab7.png)

まずは、build.gradleに以下を追加する。

``` compile 'com.jpardogo.materialtabstrip:library:1.0.9'```

こういう感じだと思う

```
dependencies {
    compile 'com.jpardogo.materialtabstrip:library:1.0.9'
}
```

次は、
PagerSlidingTabStrip widgetをレイアウトに突っ込めとの事。＊ViewPagerの上に書きましょう

```
<com.astuetz.PagerSlidingTabStrip
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary" />
```

次にonCreateの中にこれを書きなさいとの事

```
 // Initialize the ViewPager and set an adapter
 ViewPager pager = (ViewPager) findViewById(R.id.pager);
 pager.setAdapter(new TestAdapter(getSupportFragmentManager()));

 // Bind the tabs to the ViewPager
 PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
 tabs.setViewPager(pager);
```

多分こんな感じになる。

```
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ViewPager pager = (ViewPager) findViewById(R.id.pager);
        pager.setAdapter(new TestAdapter(getSupportFragmentManager()));


        PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
        tabs.setViewPager(pager);

    }
```

あとは、アダプターがなんだこうだ原文には書かれているんだけれども今回はこうやってみました。

こんな感じでTabの部分を記載


```
private class TestAdapter extends FragmentPagerAdapter {

        private final String[] TITLES = {"TEST 1", "TEST 2"};

        public TestAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            switch (position) {
                case 0:
                    return = new AFragment();
                case 1:
                    return = new BFragment();
            }

            return null;
        }


        @Override
        public int getCount() {
            return TITLES.length;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return TITLES[position];
        }
    }

```

MainActivityを見るとこんな感じです。

```
public class MainActivity extends ActionBarActivity {
//	public static Context appContext;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ViewPager pager = (ViewPager) findViewById(R.id.pager);
        pager.setAdapter(new TestAdapter(getSupportFragmentManager()));


        PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
        tabs.setViewPager(pager);

    }

    private class TestAdapter extends FragmentPagerAdapter {

        private final String[] TITLES = {"TEST 1", "TEST 2"};

        public TestAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            switch (position) {
                case 0:
                    return = new AFragment();
                case 1:
                    return = new AFragment();
            }

            return null;
        }


        @Override
        public int getCount() {
            return TITLES.length;
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return TITLES[position];
        }
    }
}
```

ちなみにxmlはこんな感じです。

```
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:viewpager="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center">

    <com.astuetz.PagerSlidingTabStrip
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        viewpager:pstsShouldExpand="true">
        </com.astuetz.PagerSlidingTabStrip>

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_weight="1"
        android:layout_height="0dp"
        android:layout_width="match_parent" />

	<LinearLayout
	    android:id="@+id/fragment_container"
	    android:layout_width="match_parent"
	    android:layout_height="50dp"
        android:orientation="horizontal">
        </LinearLayout>
</LinearLayout>
```
ちなみにMaterialデザイン対応したタブは[こちら](http://qiita.com/konifar/items/b05c5a724ae2775e4d8e)が参考になります。

長々と書きましたが、僕はこれにとても苦労したという話し。しかも、ViewPagerの下のLinearLayoutの高さを最初match_parentで書いてて、表示されない、。。。なんでだ!?と悩み続けてた。役にたたないメモでごめんなさい。