Android 4.0 for tabs)の主要な設計推奨事項の1つは、必要に応じてタブ間を スワイプを許可 することです。この動作により、ユーザーは選択したタブのコンテンツを水平方向にスワイプしてナビゲートできます隣接するタブに直接アクセスする必要はありません。
これはどのように実装できますか?
[〜#〜]ノート[〜#〜]:これは Android Training クラスからの抜粋です効果的なナビゲーションの実装。
これを実装するには(Android 3.0以降)、 ActionPage タブAPIと組み合わせて ViewPager を使用できます。
現在のページの変更を確認したら、対応するタブを選択します。この動作を設定するには、アクティビティのonCreate()
メソッドで ViewPager.OnPageChangeListener を使用します。
_@Override
public void onCreate(Bundle savedInstanceState) {
...
mViewPager.setOnPageChangeListener(
new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// When swiping between pages, select the
// corresponding tab.
getActionBar().setSelectedNavigationItem(position);
}
});
...
}
_
そしてタブを選択したら、 ViewPager の対応するページに切り替えます。これを行うには、newTab()
メソッドを使用してタブを作成するときに、タブに ActionBar.TabListener を追加します。
_actionBar.newTab()
...
.setTabListener(new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab,
FragmentTransaction ft) {
// When the tab is selected, switch to the
// corresponding page in the ViewPager.
mViewPager.setCurrentItem(tab.getPosition());
}
...
}));
_
Android 3.0)以下のAPIをターゲットにしている場合、上記のRomanのソリューションは使用できません。
私は、誰かが興味を持っている場合にActionBarSherlockで同じことを行う方法について ここのブログ投稿 を書きました。