タブ付きアプリケーションがあります。すべてのタブのレイアウトは同じです。ただし、json の応答によって内容が異なります。したがって、単一のフラグメントを作成し、すべてのビューで再利用しようとしています。しかし、タブの位置を取得する方法がわかりません。さまざまな Web サービスを呼び出すことができるようにします。
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_fragment_all_employee, container, false);
recyclerView_allemp = (RecyclerView) view.findViewById(R.id.recyclerview_allemp);
recyclerView_allemp.setLayoutManager(new LinearLayoutManager(getActivity()));
// need to get the tabposition
new EmployeeTask().execute("http://something.com");
return view;
}
ViewPager oncreate :
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_activity_employee_screen);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mViewPager = (ViewPager) findViewById(R.id.container);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.addTab(tabLayout.newTab().setText("ALL EMPLOYEES"));
tabLayout.addTab(tabLayout.newTab().setText("MALE EMPLOYEES"));
tabLayout.addTab(tabLayout.newTab().setText("FEMALE EMPLOYEES"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
final ViewPager viewPager= (ViewPager) findViewById(R.id.container);
final PagerAdapter adapter=new PagerAdapter(getSupportFragmentManager(),tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener(){
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}