Я новичок в разработке приложений для Android, и сейчас я работаю над проектом, в котором есть NavigationDrawer с TabBarLayout. Моя проблема заключается в том, что я был фрагмент, состоящий из двух кнопок Вход и регистрация:viewpager.setCurretntItem() на кнопке onClickListener
lgn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
fragmentManager=getActivity().getSupportFragmentManager();
fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.containerView,new TabFragment()).addToBackStack(null).commit();
}
});
rgst.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
fragmentManager=getActivity().getSupportFragmentManager();
fragmentTransaction=fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.containerView,new TabFragment()).addToBackStack(null).commit();
}
});
Теперь, если я нажимаю на входе в систему или зарегистрироваться расположение кнопок TabBar открытым. Теперь я хочу, чтобы, если я нажму кнопку входа в систему, фрагмент входа отображается в макете табуляции, и если я нажму на кнопку регистрации, зарегистрируйте фрагмент, открытый на вкладке.
Я также поиск по Google для этого и найти viewpager.setCurrentItem
, но я не в состоянии использовать это для моего требования
я использую как этот
public class TabFragment extends Fragment {
public static TabLayout tabLayout;
public static ViewPager viewPager;
public static int int_items = 2 ;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View x=inflater.inflate(R.layout.tab_layout,null);
tabLayout=(TabLayout)x.findViewById(R.id.tabs);
viewPager=(ViewPager)x.findViewById(R.id.viewpager);
viewPager.setAdapter(new MyAdapter(getChildFragmentManager()));
viewPager.setCurrentItem(1); //here i am unable to decide how to open specific fragment
tabLayout.post(new Runnable() {
@Override
public void run() {
tabLayout.setupWithViewPager(viewPager);
}
});
return x;
}
class MyAdapter extends FragmentPagerAdapter{
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position)
{
case 0: return new Login();
case 1: return new Registration();
}
return null;
}
@Override
public int getCount() {
return int_items;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position)
{
case 0:
return "Login";
case 1:
return "Registration";
}
return null;
}
}
пожалуйста намекают мне некоторую логику, чтобы сделать это ... спасибо заранее ...
и как рассмотреть для кнопки, которые это BOOL верно – Manish
это ваш logic.Say для входа в систему переключате n вы устанавливаете логическое значение true и для регистрации false. Затем проверьте значение boolean и запустите соответствующий элемент viewpager. – kgandroid
спасибо за ваш отзыв, но я прошу войти в систему и зарегистрировать кнопку на другой странице фрагмента и как я расскажу о макете табуляции, на которую нажата кнопка, чтобы открыть конкретную страницу входа или регистрации .... – Manish