Android 片段与复合控件

     2023-04-15     297

关键词:

【中文标题】Android 片段与复合控件【英文标题】:Android fragments vs compound controls 【发布时间】:2011-09-07 01:43:06 【问题描述】:

为什么要使用 Android 3.0 片段而不是复合控件?可以一次创建一个 View 继承器或复合控件,然后在任何地方使用它。

我已阅读http://android-developers.blogspot.com/2011/02/android-30-fragments-api.html,但没有找到答案。

【问题讨论】:

我已经在另一个问题中回答了这个问题。请参阅***.com/a/14912608/909956T;dr - 有时片段允许您创建比依赖自定义视图实现更多的可重用组件。请参阅链接答案了解原因。 【参考方案1】:

不同之处在于片段有自己的生命周期(onPause、onCreate、onStart...)。通过拥有一个生命周期,片段可以独立响应事件,通过 onSaveInstanceState 保存它们的状态,并被带回(例如在来电后恢复或用户单击返回按钮时)。生命周期总结在片段文档中:

https://developer.android.com/guide/components/fragments.html#Lifecycle

您始终可以将片段或活动包装在复合视图周围,因此只需将片段视为复合视图的容器,从而为它们提供独立的生命周期。

【讨论】:

我在***.com/a/15824301/618881 回答了一个类似的问题。有人评论说 Android 4.2 (API 17) 现在允许嵌套片段。 一个片段可以包含另一个片段。所以当你说片段不能嵌套时,我不确定你指的是什么。也许当你写这篇文章时,那是真的? @StealthRabbi,自从 Android 4.2 (API 17) 中添加了嵌套片段支持以来,我已经删除了该警告。【参考方案2】:

原因是在平板电脑和手机上使用相同的代码。这些设备有不同的布局注意事项,Fragment 允许您考虑这一点,并让您的应用程序表现不同,而无需重写任何代码。

【讨论】:

AFAIK,您可以在 android 2.x 和 3.x 应用程序中使用相同的复合控件。如果是碎片,您必须使用碎片回兼容 jar。那么,如果已经有机会使用现成的 UI 块作为复合控件,那还有什么意义呢? 我的意思是它们的用途完全不同。您可以组合片段和自定义控件,但其中一个不能代替另一个。 抱歉,没听清楚。为什么不为每个屏幕尺寸(正常/大/超大)创建单独的布局?如果我使用 因为 Fragments 更像是一个 Activity 而不仅仅是一个 View,并且使用 Fragments,您可以在屏幕上同时拥有多个能够相互通信的 Fragments。

android开发学习之控件架构与自定义控件(代码片段)

(学习参考书:Android群英传)一、Android控件架构Android中的控件大致被分为两大类,即ViewGroup控件和View控件。ViewGroup控件作为父控件可以包含多个View控件,并对其进行管理。通过ViewGroup整个界面上的控件形成... 查看详情

android开发学习之控件架构与自定义控件(代码片段)

(学习参考书:Android群英传)一、Android控件架构Android中的控件大致被分为两大类,即ViewGroup控件和View控件。ViewGroup控件作为父控件可以包含多个View控件,并对其进行管理。通过ViewGroup整个界面上的控件形成... 查看详情

android群英传知识点回顾——第三章:android控件架构与自定义控件详解

3.1Android控件架构3.2View的测量3.3View的绘制3.4ViewGroup的测量3.5ViewGroup的绘制3.6自定义View3.6.1对现有的空间进行拓展3.6.2创建复合控件3.6.3重写View来实现全新的空间3.7自定义ViewGroup3.8事件拦截机制分析控件大致非为两类:view控件:视... 查看详情

delphi控件-复合控件

复合控件复合控件是Delphi控件中非常重要的一种控件,复合控件就是将两个或两个以上的控件重新组合成一个新的控件。例如TspinEdit、TlabeledEdit、TDBNavigator等就是复合控件,TDBNavigator其实就是在一个Panel放上若干个Button而已。制... 查看详情

复合控件中公开子控件事件

publicclassUserControl1:UserControl{//privateButtonsaveButton;publiceventEventHandlerSaveButtonClick{add{saveButton.Click+=value;}remove{saveButton.Click-=value;}}}  查看详情

如何验证复合控件

】如何验证复合控件【英文标题】:howtovalidatecompositecontrols【发布时间】:2012-12-0217:03:15【问题描述】:好吧,这有点复杂。我有一个包含文本框、必填字段验证器和一个按钮的复合控件。它公开了一个名为ValidationGroup的属性。... 查看详情

复合控件选择类

复合控件:  多选框:checkbox-CheckBoxList      属性:RepeatLayout:Table 按表格排布  Flow流排布       RepeatDirection:Vertical垂直排布  Horizontal水平排布       RepeatColumns:每一行有几列&nb... 查看详情

2017-5-19复合控件

(一)复合控件1.RadioButtonList 每一行数据都是一个ListItemRadioButtonList的属性:      RepeatDirection---排列方式    RepeatColumns---每一行中需要展示的个数    RepeatLayout ---页面中生成什么样的代码List... 查看详情

复合事件与显示效果(代码片段)

复合事件与显示效果复合事件?hover(f1,f2):切换使用mouseover和mouseout()?toggle(f1,f2,f3,fn):版本问题(jquery1.9以前支持)?多个click()事件,toggle()还有其他含义(隐藏与显示)$(function()$("#h1").mouseover(function()alert("悬浮");););$("... 查看详情

android高级ui--materialdesign设计理念下的控件使用详解与各种问题的解决方案(代码片段)

一.配置:1.MaterialDesign的控件大多都放在design库中implementation'com.android.support:design:30.0.3'2.Circleimageview的配置:implementation'de.hdodenhof:circleimageview:2.1.0'3.使用三方框架Glide的配置:imp 查看详情

webform(简单控件复合控件)

一、简单控件:1.label控件<asp:LabelID="Label1"runat="server"Text="账号:"></asp:Label>被编译为:<spanid="Label1">账号:</span>属性:Text:文本ForeColor:字体颜色Visible:是否可见CssClass:即HTML的class2.Literal类似lab 查看详情

复合控件

RadioButtonList--单选RadioButtonList1.DataSource= 等于一个集合   --指向数据源 RadioButtonList1.DataTextField="NationName";  --网页中显示的内容       &n 查看详情

表单元素,简单控件,复合控件

十二个表单元素:文本类:<inputtype="text"/>//普通的文本框<inputtype="password"/>//密码框<textarea><textarea/>//可多行编辑的文本域<inputtype="hidden"/>//隐藏域选择类:<inputtype="radio"id="i"/><label 查看详情

1014简单控件和复合控件

简单控件Label-被Html编译成<span>Literal-什么元素都没有,只会在位置上将Text内容完全展示出来,可以形成jsTextBox-下面有详细介绍Button-就是按钮ImageButton-图片按钮LinkButton-超链接样式的按钮因为程序安装在客户端,所以js执行顺序... 查看详情

5.3go语言中构造函数与复合声明(constructorsandcompositeliterals)(代码片段)

构造函数单纯使用new进行初始化无法满足初始化需求,必须需要初始化的构造函数,例如以下这个例子:funcNewFile(fdint,namestring)*Fileiffd<0returnnilf:=new(File) 查看详情

5.3go语言中构造函数与复合声明(constructorsandcompositeliterals)(代码片段)

构造函数单纯使用new进行初始化无法满足初始化需求,必须需要初始化的构造函数,例如以下这个例子:funcNewFile(fdint,namestring)*Fileiffd<0returnnilf:=new(File) 查看详情

2017-5-19复合控件ispostback

(一)复合控件1.RadioButtonList 每一行数据都是一个ListItem属性:RepeatDirection---排列方式    RepeatColumns---每一行中需要展示的个数    RepeatLayout ---页面中生成什么样的代码    Enable ---是否启用    sele... 查看详情

复合控件

1、label。后台编译Span(1)ForeColor字体颜色(2)设置label的Height,Width之前,必须先设置:Display=“inLine-block”;(3)Text:文本内容。(4)visible:权限使用(5)CssClass:使用的样式表2、Literal。后台编译啥也没有(1)Text:文本内容。但是可以对L... 查看详情