Tag: android viewpager

ViewPager和片段 – 存储片段状态的正确方法是什么?

片段似乎是非常好的UI界面逻辑分成一些模块。 但是与ViewPager一起,它的生命周期对我来说还是很ViewPager的。 所以大师的想法是非常需要的! 编辑 看到下面的愚蠢的解决scheme;-) 范围 主要活动有一个带片段的ViewPager 。 这些片段可以为其他(子域)活动实现一些不同的逻辑,所以片段的数据通过活动内的callback接口填充。 而一切正常的第一次发射,但!! 问题 当活动被重新创build(例如在方向改变时), ViewPager的片段也是如此。 代码(你会发现下面)说,每一次创build活动,我尝试创build一个新的ViewPager片段适配器相同的片段(也许这是问题),但FragmentManager已经有所有这些片段存储的地方(?并启动这些娱乐机制。 因此,娱乐机制调用onAttach,onCreateView等“旧”片段与我的callback接口调用启动数据通过活动的实施方法。 但是这个方法指向通过Activity的onCreate方法创build的新创build的片段。 问题 也许我正在使用错误的模式,但即使Android 3 Pro书也没有太多的关于它。 所以, 请给我一个两拳,指出如何正确的做法。 非常感谢! 码 主要活动 public class DashboardActivity extends BasePagerActivity implements OnMessageListActionListener { private MessagesFragment mMessagesFragment; @Override protected void onCreate(Bundle savedInstanceState) { Logger.d("Dash onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.viewpager_container); new DefaultToolbar(this); // create fragments to use mMessagesFragment = […]

如何确定何时在ViewPager中可见碎片

问题: ViewPager片段onResume()在片段实际可见之前被触发。 例如,我有2个片段与ViewPager和FragmentPagerAdapter 。 第二个片段仅适用于授权用户,我需要让用户在片段变得可见时使用警报对话框login。 但ViewPager创build第二个片段时,第一个是可见的,以便caching第二个片段,并使其在用户开始滑动时可见。 所以onResume()事件在第二个片段变得可见之前很久了。 这就是为什么我试图find一个事件,当第二个片段变得可见时触发,在适当的时刻显示对话框。 如何才能做到这一点?

如何实现一个ViewPager与不同的碎片/布局

当我开始一个实现viewpager的活动时,viewpager创build了各种片段。 我想为每个片段使用不同的布局,但问题是,viewpager只显示最大的两个布局(1之后的所有剩余片段的第二个布局)。 以下是实现viewpager的SwipeActivity的代码: public class SwipeActivity extends FragmentActivity { MyPageAdapter pageAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_swipe); pageAdapter = new MyPageAdapter(getSupportFragmentManager()); ViewPager pager=(ViewPager)findViewById(R.id.pager); pager.setAdapter(pageAdapter); ActionBar bar = getActionBar(); bar.setDisplayHomeAsUpEnabled(true); } /** * Custom Page adapter */ private class MyPageAdapter extends FragmentPagerAdapter { public MyPageAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { […]

ViewPager PagerAdapter不更新视图

我正在使用兼容性库中的ViewPager。 我成功地把它展示了几个我可以翻阅的视图。 不过,我很难弄清楚如何用一组新的视图来更新ViewPager。 我已经尝试了各种各样的东西,比如调用mAdapter.notifyDataSetChanged() , mViewPager.invalidate()每次我想使用一个新的数据列表,甚至创build一个全新的适配器。 没有什么帮助,文本观点与原始数据保持不变。 更新:我做了一个小testing项目,我几乎可以更新视图。 我将粘贴下面的课程。 但是没有出现更新的是第二个视图,“B”仍然存在,按下更新button后应该显示“Y”。 public class ViewPagerBugActivity extends Activity { private ViewPager myViewPager; private List<String> data; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); data = new ArrayList<String>(); data.add("A"); data.add("B"); data.add("C"); myViewPager = (ViewPager) findViewById(R.id.my_view_pager); myViewPager.setAdapter(new MyViewPagerAdapter(this, data)); Button updateButton = (Button) findViewById(R.id.update_button); updateButton.setOnClickListener(new OnClickListener() { @Override public void […]

从ViewPager中检索一个片段

我使用一个ViewPager与一个FragmentStatePagerAdapter来承载三个不同的片段: [片段1] [Fragment2] [Fragment3] 当我想从Fragment1中的ViewPager获取FragmentActivity 。 有什么问题,我该如何解决?