Как выделить вкладку (1-я позиция из 0 позиции) в Android? - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь составить приложение-руководство, в котором пользователь может совершить экскурсию.В моем приложении у меня есть Tablayout, который содержит 5 вкладок (фрагменты).Теперь пользователь совершает обход 1-й вкладки (вкладка «0 позиций»), затем после завершения 1-го тура вкладок будет автоматически выделена 2-я вкладка (1 позиция).

Но я не могу выделить 2-ю вкладку (1 позиция) после того, какзавершение 1-й табл.Я новичок в Руководстве по приложениям для Android.

   // Fragment contains 5 tabs
public class DashboardFragment extends Fragment {

private Toolbar toolbar;
private TabLayout tabLayout;
private CustomViewPager viewPager;

public static DashboardFragment newInstance() {
    DashboardFragment f = new DashboardFragment();
    return f;
}

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup 
container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.dashboard_activity, container, 
    false);
    init(view);
    return view;
}

void init(View view) {
    viewPager = (CustomViewPager) 
 view.findViewById(R.id.viewpager_dashboard);
    setupViewPager(viewPager);
    viewPager.setCurrentItem(0);
    viewPager.setOffscreenPageLimit(5);
    tabLayout = (TabLayout) view.findViewById(R.id.tab_dashboard);
    tabLayout.setupWithViewPager(viewPager);
    MyTextView tabRank= (MyTextView) 
   LayoutInflater.from(getActivity()).inflate(R.layout.custom_tab, null);
    tabRank.setText(getResources().getString(R.string.tab_one_text));
    MyTextView tabBV= (MyTextView) 
    LayoutInflater.from(getActivity()).inflate(R.layout.custom_tab, null);
    tabBV.setText(getResources().getString(R.string.tab_two_text));
    MyTextView tabIncome= (MyTextView) LayoutInflater.from(getActivity()).inflate(R.layout.custom_tab, null);
    tabIncome.setText(getResources().getString(R.string.tab_three_text));
    MyTextView tabOther= (MyTextView) LayoutInflater.from(getActivity()).inflate(R.layout.custom_tab, null);
    tabOther.setText(getResources().getString(R.string.tab_four_text));
    MyTextView tabLocation= (MyTextView) LayoutInflater.from(getActivity()).inflate(R.layout.custom_tab, null);
    tabLocation.setText(getResources().getString(R.string.tab_five_text));

    tabLayout.getTabAt(0).setCustomView(tabOne);
    tabLayout.getTabAt(1).setCustomView(tabTwo);
    tabLayout.getTabAt(2).setCustomView(tabThree);
    tabLayout.getTabAt(3).setCustomView(tabFour);
    tabLayout.getTabAt(4).setCustomView(tabFive);
   // tabLayout.getTabAt(0).select();

    getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}

private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());
    adapter.addFragment(new TabOne(), getResources().getString(R.string.tab_one));
    adapter.addFragment(new TabTwo(), getResources().getString(R.string.tab_two));
    adapter.addFragment(new TabThree(), getResources().getString(R.string.tab_three));
    adapter.addFragment(new TabFour(), getResources().getString(R.string.tab_four));
    adapter.addFragment(new TabFive(), getResources().getString(R.string.tab_five));
    viewPager.setAdapter(adapter);
    viewPager.setCurrentItem(0);
}

class ViewPagerAdapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mFragmentTitleList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager) {
        super(manager);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }

    @Override
    public int getCount() {
        return mFragmentList.size();
    }

    public void addFragment(Fragment fragment, String title) {
        mFragmentList.add(fragment);
        mFragmentTitleList.add(title);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mFragmentTitleList.get(position);
    }
}
       }

Класс фрагмента с одной вкладкой

public class TabOneFragment extends Fragment {

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.tab_one_fragment, container, false);

    return view;
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    session = new Session(getActivity());
}

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    mContext = context;
}


 }

Я ищу, когда пользователь на первой вкладке, а затем на второй вкладке выделяется как showcaseview для справки https://github.com/deano2390/MaterialShowcaseView

...