Android - material 设计:带滑动标签的标签条(标题)
Android - material design: tabstrip with sliding tab (titles)
在我的应用程序(Material 设计)中,我想显示(比方说)10 个选项卡。在这些选项卡中,选项卡条应该包含例如4. 现在标签条显示所有 tab-titles,每个标签有 2 个字母。
如何创建滑动标签条?这样我就可以在选项卡条中滚动到右侧选项卡了吗?
我知道有一个定制的标签条,我想尽可能多地使用标准设施。
1 - 设置标签寻呼机:
private void setupTabPager() {
viewPager = (ViewPager) findViewById(R.id.pager);
final PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
// UserFeedback.show( "Tab selected: " + tab.getText());
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
2 - 设置选项卡布局:
private void setupTablayout() {
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
if (tabLayout == null) {
return;
}
// tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabGravity(TabLayout.MODE_SCROLLABLE);
tabLayout.addTab(tabLayout.newTab().setText("Folders"));
tabLayout.addTab(tabLayout.newTab().setText("Items"));
3 - 扩展 FragmentStatePagerAdapter 的 PageAdapter:
public class PagerAdapter extends FragmentStatePagerAdapter {
int mNumOfTabs;
public PagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case MainActivity.FRAGMENT_GROUPS_AND_ITEMS:
return new FragmentGroupsAndItems();
case MainActivity.FRAGMENT_FOLDERS:
return new FragmentFolders();
.... }
为什么不将标签页放在 HorizontalScrollView 中?
可能对你有帮助。
请参阅本教程。它会为你工作。
http://www.androidhive.info/2015/09/android-material-design-working-with-tabs/
根据AndroidMaterial设计的新实现
在我的应用程序(Material 设计)中,我想显示(比方说)10 个选项卡。在这些选项卡中,选项卡条应该包含例如4. 现在标签条显示所有 tab-titles,每个标签有 2 个字母。 如何创建滑动标签条?这样我就可以在选项卡条中滚动到右侧选项卡了吗? 我知道有一个定制的标签条,我想尽可能多地使用标准设施。
1 - 设置标签寻呼机:
private void setupTabPager() {
viewPager = (ViewPager) findViewById(R.id.pager);
final PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
// UserFeedback.show( "Tab selected: " + tab.getText());
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
2 - 设置选项卡布局:
private void setupTablayout() {
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
if (tabLayout == null) {
return;
}
// tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setTabGravity(TabLayout.MODE_SCROLLABLE);
tabLayout.addTab(tabLayout.newTab().setText("Folders"));
tabLayout.addTab(tabLayout.newTab().setText("Items"));
3 - 扩展 FragmentStatePagerAdapter 的 PageAdapter:
public class PagerAdapter extends FragmentStatePagerAdapter {
int mNumOfTabs;
public PagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case MainActivity.FRAGMENT_GROUPS_AND_ITEMS:
return new FragmentGroupsAndItems();
case MainActivity.FRAGMENT_FOLDERS:
return new FragmentFolders();
.... }
为什么不将标签页放在 HorizontalScrollView 中?
可能对你有帮助。
请参阅本教程。它会为你工作。 http://www.androidhive.info/2015/09/android-material-design-working-with-tabs/
根据AndroidMaterial设计的新实现