之間刷卡不響應我有抽屜式的佈局,有四個片段片段FragmentViewPager而片段
它的一個片段被稱爲債務人。債務人有FragmentViewPager應該返回FragmentDebtorsForMe或FragmentDebtorsMeToOther。
我創建Debtors.class CategoryAdapterDebtors(債務人延伸片段)
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ViewPager viewPager = (ViewPager) view.findViewById(R.id.debtors_viewpager);
TabLayout tabLayout = (TabLayout) view.findViewById(R.id.debtors_tabs);
CategoryAdapterDebtors categoryAdapterDebtors = new CategoryAdapterDebtors
(getChildFragmentManager());
viewPager.setAdapter(categoryAdapterDebtors);
tabLayout.setupWithViewPager(viewPager);
}
CategoryAdapterDebtors的方式,擴展FragmentPagerAdapter:
public class CategoryAdapterDebtors extends FragmentPagerAdapter {
public CategoryAdapterDebtors(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
if(position==0)
return new FragmentDebtorsForMe();
if(position==1)
return new FragmentDebtorsMeToOther();
return null;
}
@Override
public CharSequence getPageTitle(int position) {
if (position == 0) {
return "For me";
} else if (position == 1) {
return "Me to other";
}
return null;
}
@Override
public int getCount() {
return 2;
}
我會貼上兩個碎片的一個應該出現在ViewPager因爲他們都有同樣的問題,而且在開始階段,他們有相同的內容。
public class FragmentDebtorsForMe extends Fragment{
private static final String TAG = FragmentDebtorsForMe.class.getSimpleName();
DatabaseClients dbClients;
List<Client> listOfClients;
public FragmentDebtorsForMe() {
Log.i(TAG, "FragmentDebtorsForMe: START");
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "onCreate: start");
super.onCreate(savedInstanceState);
listOfClients = getAllClientsFromDatabase();
Log.i(TAG, "onCreate: end");
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
Log.i(TAG, "onCreateView: START");
View rootView = inflater.inflate(R.layout.recycler, container, false);
Log.i(TAG, "onCreateView: END");
return rootView;
}
@Override
public void onAttach(Context context) {
Toast.makeText(context, "halo", Toast.LENGTH_SHORT).show();
Log.i(TAG, "onAttach: START");
super.onAttach(context);
}
@Override
public void onDetach() {
Log.i(TAG, "onDetach: START");
super.onDetach();
}
public List<Client> getAllClientsFromDatabase() {
dbClients = new DatabaseClients(getContext());
List<Client> clients = dbClients.getAllClient();
for(Client c: clients)
Log.i(TAG, "getAllClientsFromDatabase: " + c.toString());
return clients;
}
}
問題是,當我在片段之間滑動我的任何Log.i的不響應。
其他奇怪的事情是,當我在我的導航抽屜裏點擊債務人,然後從FragmentDebtorsForMe和FragmentDebtorsMeToOther調用日誌,但只有一次,而不是在ViewPager之間滑動時。
當我創建例如用於FragmentDebtorsMeToOther隨機視圖顯示它是正常顯示(onCreateView工作),但Log.i仍然無法正常工作
我不知道什麼可能導致此問題。