如何使用Swipe视图实现android TabLayout设计支持libarary
我将使用android TabLayout设计支持库,但我不知道如何使用滑动视图。
这是我的代码
XML:
Java的:
TabLayout tabLayout; tabLayout = (TabLayout) findViewById(R.id.tabLayout); tabLayout.addTab(tabLayout.newTab().setText("Tab 1")); tabLayout.addTab(tabLayout.newTab().setText("Tab 2")); tabLayout.addTab(tabLayout.newTab().setText("Tab 3"));
派对有点晚了,但要做到这一点,你必须使用ViewPager
类并为每个视图使用片段(在选项卡下)。 然后将ViewPager
附加到TabLayout
实例和宾果游戏! 你有刷卡tabLayout。
以下是我的一些使用两个标签的工作代码:
MyActivity.java:
super.onCreate(savedInstanceState); setContentView(R.layout.main_layout); // Initializing tab and pager views TabLayout tabLayout = (TabLayout) findViewById(R.id.my_tab_layout); final ViewPager viewPager = (ViewPager) findViewById(R.id.my_view_pager); // Making new tabs and adding to tabLayout tabLayout.addTab(tabLayout.newTab().setText("First Tab")); tabLayout.addTab(tabLayout.newTab().setText("Second Tab")); // Adding fragments to a list List fragments = new Vector (); fragments.add(Fragment.instantiate(this, MyFirstTabFragment.class.getName())); fragments.add(Fragment.instantiate(this, MySecondTabFragment.class.getName())); // Attaching fragments into tabLayout with ViewPager viewPager.setAdapter(new SectionPagerAdapter(getSupportFragmentManager(), fragments)); tabLayout.setupWithViewPager(viewPager);
SectionPagerAdapter.java
import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import java.util.List; public class SectionPagerAdapter extends FragmentPagerAdapter { private List fragments; public SectionPagerAdapter(FragmentManager fm, List fragments) { super(fm); this.fragments = fragments; } @Override public Fragment getItem(int position) { return this.fragments.get(position); } @Override public int getCount() { return this.fragments.size(); } @Override public CharSequence getPageTitle(int position) { switch (position) { case 0: return "First Tab"; case 1: default: return "Second Tab"; } } }
MyFirstTabFragment.java:
public class MyFirstTabFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Declare your first fragment here return inflater.inflate(R.layout.my_first_fragment_layout, container, false); } }
MySecondTabFragment.java:
public class MySecondTabFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Declare your second fragment here return inflater.inflate(R.layout.my_second_fragment_layout, container, false); } }
main_layout.xml
my_first_fragment_layout.xml
my_second_fragment_layout.xml
注意:这里我们使用来自支持库v4的ViewPager
, Fragment
, FragmentManager
和FragmentPagerAdapter
。
希望能帮助到你。
将此行添加到您的Java代码: – tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
或者您也可以在xml代码中指定: – app:tabMode="scrollable"