在Android应用程序中使用活动或片段
我是android新手。我经常使用活动从一个屏幕切换到另一个具有其他功能的屏幕。从主页到流行页面的示例。在那之后,我知道fragment,但我以前从未使用过它。因此,如果我有一个屏幕上有多个选项卡的应用程序,在这里不要使用TabHost。每个标签的功能非常不同,例如:标签主页,标签流行,标签新闻,标签个人资料。。。比如Instagram应用程序。我必须用这个在Android应用程序中使用活动或片段,android,android-activity,android-fragments,Android,Android Activity,Android Fragments,我是android新手。我经常使用活动从一个屏幕切换到另一个具有其他功能的屏幕。从主页到流行页面的示例。在那之后,我知道fragment,但我以前从未使用过它。因此,如果我有一个屏幕上有多个选项卡的应用程序,在这里不要使用TabHost。每个标签的功能非常不同,例如:标签主页,标签流行,标签新闻,标签个人资料。。。比如Instagram应用程序。我必须用这个 活动将屏幕切换到另一个屏幕,这意味着:我有家庭活动、流行活动。。。并在发生变化时改变活动。每个活动都有各自的布局 在一个活动中使用片段。我
我想问一下什么时候只用手机屏幕。(小屏幕,不适用于平板电脑)。您可以使用任何一种方式。如果决定使用活动解决方案,请创建包含所有选项卡功能的基本活动类。你不想在每一个活动中一遍又一遍地实现这一点
public class BaseActivity extends Activity {
@Override
public void onCreate(...) {
// Init tabs
}
// Methods for tab handling
}
每个活动(流行、个人资料、家庭等)都扩展了BaseActivity
public class PopularActivity extends BaseActivity {
@Override
public void onCreate(...) {
super.onCreate(...);
// Init only the popular activity elements here
}
}
通过这种方式,您只需实现一次标签功能,并在每项活动中都能获得它。重要的是,要将Android设备视为一个频谱,而不是明确的“手机”与“平板电脑”桶。在许多情况下,您可能希望在
中型
和大型
屏幕上显示更多信息。有时,这意味着同时显示两个“活动”
使用片段只需要很少的开销,但增加了可测量的灵活性,特别是在开发过程的早期考虑时。如果正确使用片段,适应更大的屏幕非常简单。然而,有几个“陷阱”可能会使片段看起来比实际情况更令人畏惧:
类必须始终声明为Fragment
(如果是嵌套类,则必须声明为public
)静态
- 在父级
(或活动
)中,如果片段活动
savedInstanceState==null,则仅添加根
。如果您正确地管理了片段
片段的状态,那么一切都会为您处理(滚动位置、编辑文本值等)
- 父级
必须通过调用活动
,才能使onSavedInstanceState
正确恢复其状态片段
只能用于“无头”碎片。这是当您使用一个没有UI的片段,并且没有添加到后台堆栈中时,后台堆栈通常用于执行与生命周期相关的工作setRetainInstance(true)
- XML中声明的片段不能用于
(反之亦然)片段事务
将
片段
视为一个模块化视图,它在重要事件发生时为其活动
提供挂钩(回调)。活动
根据可用空间决定是启动一个新的活动
,还是显示一个新的片段
我只理解这种方式,但我也认为每个屏幕都有每个活动,所有活动都从BaseActivity扩展而来。所以,我不知道BaseActivity必须初始化什么。请提供一些线索。。。为了更好的理解。谢谢你。