使用 Viewpager 从 TabHost 切换到 Fragments:将我的所有代码放在哪里

Posted

技术标签:

【中文标题】使用 Viewpager 从 TabHost 切换到 Fragments:将我的所有代码放在哪里【英文标题】:Switching from TabHost to Fragments with Viewpager: Where to put all my Code 【发布时间】:2012-02-15 07:17:37 【问题描述】:

到目前为止,我已经使用 TabHost 为我的应用程序创建 3 个选项卡。每个选项卡都由一个 Activity 表示,我在其中通过 setContentView(R.layout.something) 从 XML 文件中获取布局。 所以 3 个选项卡、3 个活动和 3 个 XML 文件。

现在我偶然发现了片段,这是一种新的更好的方法,所以这是我的问题。

Fragment 处理 UI,因此创建 3 个 Fragment 由 FragmentPagerAdapter 处理。在每个片段中,我通过 XML 文件创建内容。

但是我应该把关于哪个按钮做什么的所有代码放在哪里,从数据库读取或写入它等等。到目前为止,这一切都在Tabhost加载的每个活动中。

我是否将所有代码放入每个片段的onCreate() 等方法中,还是有更好更简洁的方法?

【问题讨论】:

【参考方案1】:

您提出的方法非常好!

关于在哪里做什么,我建议您在每个片段的 onCreateView() 中创建/更改页面(片段)的 UI,以及 onActivityCreated 中的任何逻辑(读取数据库等) ()。我建议在片段中避开 onCreate() ,因为它在与 Activity 关联之前被调用(防止您执行诸如对内容提供者的托管查询之类的事情)。按钮点击监听器可以在 onCreateView 或 onActivityCreated() 中定义。

如果有更具体的,请告诉我。别忘了,标准寻呼机不包含一行标签标题/图标,但 Google ViewPagerIndicator 和您会找到一个可以用来执行此操作的库。

【讨论】:

以上是关于使用 Viewpager 从 TabHost 切换到 Fragments:将我的所有代码放在哪里的主要内容,如果未能解决你的问题,请参考以下文章

Android 2.2 + ViewPager和Fragments实现TabHost使用教程

安卓TabHost+ViewPager+RadioGroup多功能模板整理

Android ViewPager+TabHost实现首页导航

TabHost+ViewPager+Fragment实现页面的滑动,android开发工具deve

切换页面后标签内容消失

关于侧边栏和滑动tab,还有底部TabHost一起怎么实现?