the fragments show an empty screen in the viewpager
Have used this library for adding tabs gihub
Referred to this solution for adding the fragments adding fragments to viewpager
Here is the code
public class HorizontalNtbActivity extends android.support.v4.app.FragmentActivity {
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_horizontal_ntb);
initUI();
}
private void initUI() {
CreateFragment createFragment = new CreateFragment();
GroupFragment groupFragment= new GroupFragment();
HomeFragment homeFragment= new HomeFragment();
ProfileFragment profileFragment = new ProfileFragment();
DashPagerAdapter dashPagerAdapter = new DashPagerAdapter(getSupportFragmentManager(),4);
dashPagerAdapter.addFragment(homeFragment);
dashPagerAdapter.addFragment(createFragment);
dashPagerAdapter.addFragment(profileFragment);
dashPagerAdapter.addFragment(groupFragment);
final ViewPager viewPager = (ViewPager) findViewById(R.id.vp_horizontal_ntb);
viewPager.setAdapter(dashPagerAdapter);
final String[] colors = getResources().getStringArray(R.array.tabcolors);
final NavigationTabBar navigationTabBar = (NavigationTabBar) findViewById(R.id.ntb_horizontal);
final ArrayList<NavigationTabBar.Model> models = new ArrayList<>();
models.add(
new NavigationTabBar.Model.Builder(
getResources().getDrawable(R.drawable.ic_first),
Color.parseColor(colors[0]))
.selectedIcon(getResources().getDrawable(R.drawable.ic_sixth))
.title("Home")
.badgeTitle("NTB")
.build()
);
models.add(
new NavigationTabBar.Model.Builder(
getResources().getDrawable(R.drawable.ic_second),
Color.parseColor(colors[1]))
.selectedIcon(getResources().getDrawable(R.drawable.ic_eighth))
.title("Groups")
.badgeTitle("with")
.build()
);
models.add(
new NavigationTabBar.Model.Builder(
getResources().getDrawable(R.drawable.ic_third),
Color.parseColor(colors[2]))
.selectedIcon(getResources().getDrawable(R.drawable.ic_seventh))
.title("Create")
.badgeTitle("state")
.build()
);
models.add(
new NavigationTabBar.Model.Builder(
getResources().getDrawable(R.drawable.ic_fourth),
Color.parseColor(colors[3]))
.selectedIcon(getResources().getDrawable(R.drawable.ic_eighth))
.title("Profile")
.badgeTitle("icon")
.build()
);
navigationTabBar.setBgColor(Color.parseColor("#424242"));
navigationTabBar.setActiveColor(Color.parseColor("#ffffff"));
navigationTabBar.setInactiveColor(Color.parseColor("#9E9E9E"));
navigationTabBar.setModels(models);
navigationTabBar.setViewPager(viewPager, 0);
navigationTabBar.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(final int position, final float positionOffset, final int positionOffsetPixels) {
}
@Override
public void onPageSelected(final int position) {
navigationTabBar.getModels().get(position).hideBadge();
Toast.makeText(HorizontalNtbActivity.this, "" + position, Toast.LENGTH_SHORT).show();
}
@Override
public void onPageScrollStateChanged(final int state) {
}
});
navigationTabBar.postDelayed(new Runnable() {
@Override
public void run() {
for (int i = 0; i < navigationTabBar.getModels().size(); i++) {
final NavigationTabBar.Model model = navigationTabBar.getModels().get(i);
navigationTabBar.postDelayed(new Runnable() {
@Override
public void run() {
model.hideBadge();
}
}, i * 100);
}
}
}, 500);
}}
This is the Adapter
public class DashPagerAdapter extends FragmentPagerAdapter {
public final List<Fragment> fragments = new ArrayList<>();
public DashPagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
int mNumOfTabs;
@Override
public Fragment getItem(int position) {
switch (position) {
case 0: {
return HomeFragment.newInstance("sdfsdfsdfsdf");
}
case 1: {
return CreateFragment.newInstance("adfsdfsfd");
}
case 2: {
return GroupFragment.newInstance("adfsdfsfd");
}
case 3: {
return ProfileFragment.newInstance("abcd");
}
default:
return null;
}
}
public void addFragment(Fragment fragment) {
fragments.add(fragment);
notifyDataSetChanged();
}
@Override
public boolean isViewFromObject(final View view, final Object object) {
return view.equals(object);
}
@Override
public int getCount() {
return 4;
}
}
These is a fragment. All the other fragments are similar
public class HomeFragment extends Fragment {
public HomeFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_home, container, false);
TextView textView = (TextView) view.findViewById(R.id.homefragmenttextview);
textView.setText(getArguments().getString("msg"));
// Inflate the layout for this fragment
return view;
}
public static HomeFragment newInstance(String text) {
Bundle args = new Bundle();
args.putString("msg", text);
HomeFragment fragment = new HomeFragment();
fragment.setArguments(args);
return fragment;
}
}
Here is how it looks image for reference