Ваш вопрос не очень понятен, но из того, что я понял, вы хотите иметь разные ссылочные пути для разных вкладок, используя один и тот же класс фрагментов для каждого дочернего фрагмента в хосте ViewPager.
, если это в вашем случае:
создайте метод get c publi в классе, который имеет виджет ViewPager в макете :
//will return the current position of the Tab
public int getViewPagerCurrentPosition(){
return viewpager.getCurrentItem()
}
В вашем Фрагменте РЕБЕНОК Класс (где у вас есть свой рециклер):
Если класс хостинга активность :
int position = (CAST:NAME_OF_THE_ACTIVITY)getActivity().getViewPagerCurrentPosition()
Если класс хостинга представляет собой фрагмент :
int position = (CAST:NAME_OF_THE_FRAGMENT) getParentFragment().getViewPagerCurrentPosition()
Теперь вы можете задать условие для назначения правильного ссылочного пути на основе наличия текущей позиции вкладки.
Имейте в виду, что позиция начинается с 0
, если (position == 0) {...} else ...
или переключатель (позиция)
ОБНОВЛЕНИЕ (еще возможно Решение) (Я полагаю, вам нужен childKey внутри фрагмента)
1-INSIDE YOUR FRAGMENT создать этот фабричный метод (позволяет передать аргумент фрагменту):
private static final String ARG_CHILDKEY= "child_key"//or any string you want;
public static FragmentUnu newInstance(String key) {
Bundle args = new Bundle();
args.putString(ARG_CHILDKEY, key);
FragmentUnu fragment = new FragmentUnu();
fragment.setArguments(args);
return fragment;
}
2-Обновить следующее:
databaseRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for (DataSnapshot child: dataSnapshot.getChildren()){
String key = child.getKey();
adapter.AddFragment(FragmentUnu.newInstance(key),key);
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
3-назад к вашему FragmentUnu:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String key= getArguments().getString(ARG_CHILDKEY);
}
Теперь у вас есть ключ в вашем фрагменте