0

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

Community
  • 1
  • 1
Saransh Agarwal
  • 305
  • 5
  • 18

1 Answers1

0

In your adapter, change this

 @Override
 public boolean isViewFromObject(final View view, final Object object) 
 { 
     return view.equals(object); 
 } 

To this

 @Override
 public boolean isViewFromObject(final View view, final Object object) 
 {
     return view == object; 
 }
Jordan
  • 713
  • 15
  • 30