So, in the current state, I can see the fragment inside, showing when I boot up the virtual phone; however, as soon as I switch to different fragment, from my drawer, and switch back again into the fragment, with the tableLayout, its shows nothing! Plus, switching between the tabs does seem to fix it.
Here is the code:
package com.example.teamapp;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.viewpager.widget.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.material.tabs.TabItem;
import com.google.android.material.tabs.TabLayout;
public class HomeFragmentNav extends Fragment {
FragmentManager fragmentManagerHome;
ViewPager viewPager;
TabLayout tableLayout;
PagerAdapter pagerAdapter;
TabItem TeamsTab;
TabItem ChatTab;
View v;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
v = inflater.inflate(R.layout.fragment_home_nav, container, false);
tableLayout = v.findViewById(R.id.TabBar);
TeamsTab = v.findViewById(R.id.TeamsTab);
ChatTab = v.findViewById(R.id.ChatTab);
viewPager = v.findViewById(R.id.ViewPager);
tableLayout.getTabAt(1).select();
tableLayout.getTabAt(0).select();
fragmentManagerHome = getFragmentManager();
pagerAdapter = new PagerAdapter(fragmentManagerHome,
tableLayout.getTabCount(), getContext());
viewPager.setAdapter(pagerAdapter);
tableLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setAdapter(pagerAdapter);
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
return v;
}
@Override
public void onResume() {
super.onResume();
tableLayout = v.findViewById(R.id.TabBar);
TeamsTab = v.findViewById(R.id.TeamsTab);
ChatTab = v.findViewById(R.id.ChatTab);
viewPager = v.findViewById(R.id.ViewPager);
tableLayout.getTabAt(1).select();
tableLayout.getTabAt(0).select();
fragmentManagerHome = getFragmentManager();
pagerAdapter = new PagerAdapter(fragmentManagerHome,
tableLayout.getTabCount(), getContext());
viewPager.setAdapter(pagerAdapter);
}
}
Thank you for your help.
CodePudding user response:
Prevent the page from refreshing.
view_pager.setOffscreenPageLimit(2);
CodePudding user response:
found the problem, I used "getFragmentManager()" instead of "getChildFragmentManager()"
