如何在Android中突出显示标签页(第1个位置从0位置)?

时间:2019-04-16 19:16:47

标签: android android-fragments fragment android-tablayout showcaseview

我正在尝试制作应用指南,以便用户可以浏览。在我的应用程序中,我正在使用Tablayout,其中包含5个选项卡(片段)。现在,用户浏览第一个标签页(0位置标签),然后完成第一个标签页浏览,它将自动突出显示第二个标签页(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);
    }
}
       }

Tab One Fragment Class

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

0 个答案:

没有答案