我目前在使用setUserVisibleHint當使用者看到這個畫面的時候觸發 讓使用者能看到資料庫的最新資料
目前的問題是如圖我從F1到F2的時候是很順利就能觸發執行的,但當我從F2回來F1的時候他是有觸發拉 但是他是觸發我放在F1的setUserVisibleHint,我的F1只是畫面設定。
我是想讓他跑T1的setUserVisibleHint 我有試過從T2轉到T1他是有順利執行的 所以我目前找出的問題是如何在進入F1的時候讓程式碼知道我目前在看T幾。
F1程式碼
public class tab1 extends BaseLazyFragment {
private String user_id,phone,cookie;
private TabLayout mTablayout ;
private ViewPager pager ;
TabsPagerAdapter myAdapter;
//接收從home傳來的值
public tab1( Object id_user, Object id_phone, Object cookieStr){
user_id = (String) id_user;
phone = (String) id_phone;
cookie = (String) cookieStr;
}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_tab1, container, false);
initView(view);
return view;
}
private void initView(View view){
pager = view.findViewById(R.id.viewPage);
mTablayout = view.findViewById(R.id.tabs);
//tab選項文字
mTablayout.addTab(mTablayout.newTab().setText("最新動態"));
mTablayout.addTab(mTablayout.newTab().setText("人氣商品"));
mTablayout.addTab(mTablayout.newTab().setText("熱銷排行"));
myAdapter = new TabsPagerAdapter(getChildFragmentManager(), FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT, mTablayout.getTabCount());
//由於父Fragment是巢狀在Activity中的,而Activty除非不顯示,否則是不會被銷燬的,即getSupportFragmentManager()會一直存在,在父Fragemnt中顯示一般會很穩定正常。
//由於在子Fragment中getFragmentManager()返回的父Fragment的FragmentManager,所以一旦父Fragment在切換的過程中被銷燬,則FragmentManager丟失,造成子Fragment顯示錯誤。
//而getChildFragmentManager()會判斷Fragment的狀態,對FragmentManager進行儲存,則不會出現上面的問題。
pager.setAdapter(myAdapter);
pager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTablayout));
mTablayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
pager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
@Override
public void onLazyLoad() {
}
}