タブレイアウトを使用したアプリを作っています。
スワイプでviewの切り替えはできているのですが、タップした際にも切り替えができるようにしたいです。
activity_main.xml
lang
1<android.support.design.widget.TabLayout 2android:id="@+id/tabs" 3android:layout_width="match_parent" 4android:layout_height="wrap_content" 5android:layout_below="@id/tool" /> 6 7<android.support.v4.view.ViewPager 8android:id="@+id/pager" 9android:layout_width="match_parent" 10android:layout_height="wrap_content" 11android:layout_below="@string/appbar_scrolling_view_behavior" />
Main.Java
lang
1adapter = new TabPagerAdapter(getSupportFragmentManager()); 2tabLayout = (TabLayout) findViewById(R.id.tabs); 3viewPager = (ViewPager) findViewById(R.id.pager); 4viewPager.setAdapter(adapter); 5tabLayout.setTabMode(TabLayout.MODE_FIXED); 6tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 7tabLayout.setTabsFromPagerAdapter(adapter); 8tabLayout.setupWithViewPager(viewPager); 9viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
TabPagerAdapter.java
lang
1 2ublic TabPagerAdapter(FragmentManager fm) { 3 super(fm); 4} 5 6@Override 7public Fragment getItem(int position) { 8 switch(position){ 9 case 0: 10 return new TabFragment1(); 11 case 1: 12 return new TabFragment2(); 13 case 2: 14 return new TabFragment3(); 15 default: 16 return new TabFragment1(); 17 } 18} 19 20@Override 21public int getCount() { 22 return 3; 23} 24 25@Override 26public CharSequence getPageTitle(int position) { 27 switch(position){ 28 case 0: 29 return "Tab1"; 30 case 1: 31 return "Tab2"; 32 case 2: 33 return "Tab3"; 34 default: 35 return "Tab1"; 36 } 37}
TabFragment1.java
lang
1@Override 2public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 3 final View view = inflater.inflate(R.layout.tab_fragment_1, container, false); 4 5 return view; 6}
TabFragment2.java
lang
1@Override 2public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 3 final View view = inflater.inflate(R.layout.tab_fragment_2, container, false); 4 5 return view; 6}
TabFragment3.java
lang
1@Override 2public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 3 final View view = inflater.inflate(R.layout.tab_fragment_3, container, false); 4 5 return view; 6}
としております。
実装方法を教えてもらないでしょうか。
あなたの回答
tips
プレビュー