我有一个动画,它带有两个代表膨胀布局的碎片。用户与之交互的主要布局是ViewPager。这个ViewPager会根据用户的操作定期更新。
问题是,当动画发生时,会重新创建片段,因此会重新创建ViewPager,这很好,因为动画旨在作为加载场景。当主要片段出现时,ViewPager的页面是空的?它们一直是空的,直到我来回地发现它们看起来“神奇地”装载它似乎......
任何帮助都会很棒。
主视图ViewPager(内部类)的片段:
/**
* A fragment representing the front of the card.
*/
public static class CardFrontFragment extends Fragment {
public CardFrontFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView;
rootView = inflater.inflate(R.layout.activity_dashboard, container, false);
TextView textviewLocation = (TextView)rootView.findViewById(R.id.textview_location);
TextView textviewConditions = (TextView)rootView.findViewById(R.id.textview_points);
ViewPager viewPagerDashboard = (ViewPager)rootView.findViewById(R.id.viewPager_Dashboard);
if(overviewData != null) {
textviewLocation.setText(overviewData.getLocation());
textviewPoints.setText(overviewData.getPoints());
viewPagerDashboard.setAdapter(adapterSectionsPager);
viewPagerDashboard.invalidate();
adapterSectionsPager.notifyDataSetChanged();
}
return rootView;
}
}
现在每次动画发生时,当主要片段出现时,它会重新创建为您在上面看到的内容。
以下是ViewPager的适配器:
public class SectionsPagerAdapter extends FragmentStatePagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public android.support.v4.app.Fragment getItem(int position) {
return DashboardSectionFragment.create
(uiContext, position, overviewData, moreData, moreData, moreData);
}
@Override
public int getCount() {
// Show 4 total pages:
return 4;
}
@Override
public CharSequence getPageTitle(int position) {
Locale l = Locale.getDefault();
switch (position) {
case 0:
return getString(R.string.title_section_1).toUpperCase(l);
case 1:
return getString(R.string.title_section_2).toUpperCase(l);
case 2:
return getString(R.string.title_section_3).toUpperCase(l);
case 3:
return getString(R.string.title_section_4).toUpperCase(l);
}
return null;
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
然后设置适配器并完成所有UI工作,其中包含一个ListView 第一页。
让我感到困惑的是,当应用程序首次启动时,动画发生在immidiatley,一切正常,页面被添加并可以看到。但是,当用户按下一个按钮并触发完全相同的进程时,ViewPager似乎会更新,但是没有推出更新?我可以看到应该是页面的标签条,但是在通过物理手势循环之前页面不会加载...
非常感谢任何帮助。