0
我正在研究包含五个选项卡的android应用程序。每个选项卡需要多个页面,并且在选项卡上重新选择,它应该放在每个选项卡的第一个片段上。以下是我的代码;如何在我的Android应用程序中实现类似iOS的标签功能
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout);
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.icon_discover));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.icon_my_cuddll));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.helpicon_feedback));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.icon_notifications));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.icon_user));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
final PagerAdaptor adapter = new PagerAdaptor
(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
tab.getIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);
if(tab.getPosition()==4)
{
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
tab.getIcon().setColorFilter(Color.parseColor("#87243D"), PorterDuff.Mode.SRC_IN);
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
我的传呼机适配器类如下:
public class PagerAdaptor extends FragmentStatePagerAdapter {
int mNumOfTabs;
public PagerAdaptor(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
CuddllFragment tab1 = new CuddllFragment();
return tab1;
case 1:
MyCuddllFragment tab2 = new MyCuddllFragment();
return tab2;
case 2:
// CuddllConversationFragment tab3 = new CuddllConversationFragment();
ConversationFragment conversationFragment = new ConversationFragment();
return conversationFragment;
case 3:
// CuddllNotificationsFragment tab4 = new CuddllNotificationsFragment();
Tab4ContainerFragment notificationPageFragment = new Tab4ContainerFragment();
return notificationPageFragment;
case 4:
MyProfileFragment tab5 = new MyProfileFragment();
return tab5;
default:
return null;
}
}
@Override
public int getCount() {
return mNumOfTabs;
}
如果您有具体问题,我们很乐意为您效劳。但目前这个问题太宽泛了。这听起来像你希望我们为你做你的工作。如果你有一个具体的问题,请编辑你的问题来重新修改并添加一些你已经尝试过的代码,这将会有所帮助。阅读帮助中心以获取更多信息。 –
“每个标签需要多个页面” - 这听起来像一个糟糕的设计。你不应该在标签页面中有页面。标签应该是网页本身 –
是的,但应用程序的要求是相同的。每个选项卡中都有多个页面导航。例如,第一个片段显示列表,当点击任何列表项时,它会打开详细信息,然后在同一个选项卡中详细打开成员页面。并且当再次重新选择相同的标签时,它应该进入第一页即列表。 –