Название последней вкладки в моем ViewPager не отображается - PullRequest
0 голосов
/ 01 декабря 2018

Название последней вкладки в моем ViewPager не отображается, в этом случае у меня есть 4 вкладки, но отображаются только первые 3 вкладки, но не последняя, ​​хотя я могу провести до четвертой вкладки

Код

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;

import java.util.Objects;

import it.neokree.materialtabs.MaterialTab;
import it.neokree.materialtabs.MaterialTabHost;
import it.neokree.materialtabs.MaterialTabListener;

public class MainActivity extends AppCompatActivity implements 
MaterialTabListener {

    MaterialTabHost tabHost;
    ViewPager viewPager;
    ViewPagerAdapter androidAdapter;
    Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        toolbar = this.findViewById(R.id.toolBar);

        tabHost = this.findViewById(R.id.tabHost);
        viewPager = this.findViewById(R.id.viewPager);

        androidAdapter = new ViewPagerAdapter(getSupportFragmentManager());
        viewPager.setAdapter(androidAdapter);
        viewPager.setOnPageChangeListener(new 
        ViewPager.SimpleOnPageChangeListener() {
            @Override
            public void onPageSelected(int tabposition) {
                tabHost.setSelectedNavigationItem(tabposition);
            }
    });

    for (int i = 1; i < androidAdapter.getCount(); i++) {
        tabHost.addTab(
                tabHost.newTab()

.setText(Objects.requireNonNull(androidAdapter.getPageTitle(i)))
                        .setTabListener(this)
        );
    }
    }

    @Override
    public void onTabSelected(MaterialTab materialTab) {

       viewPager.setCurrentItem(materialTab.getPosition());
    }

//tab on reselected
@Override
public void onTabReselected(MaterialTab materialTab) {

}

//tab on unselected
@Override
public void onTabUnselected(MaterialTab materialTab) {

}

private class ViewPagerAdapter extends FragmentStatePagerAdapter {

    ViewPagerAdapter(FragmentManager fragmentManager) {
        super(fragmentManager);
    }

    public Fragment getItem(int num) {
        return new AndroidFragment();
    }

    @Override
    public int getCount() {
        return 4;
    }

    @Override
    public CharSequence getPageTitle(int tabposition) {
        return "Tab " + tabposition;
    }
}}

Название последней вкладки в моем ViewPager не отображается, в этом случае у меня есть 4 вкладки, но отображаются только первые 3 вкладки, но не последняя, ​​хотяЯ могу провести на четвертой вкладке

1 Ответ

0 голосов
/ 01 декабря 2018

Измените эту строку:

for (int i = 1; i < androidAdapter.getCount(); i++)

на

for (int i = 0; i < androidAdapter.getCount(); i++)

Вам не хватает 1 вкладки

...