我正在考虑使用 Activity 实现一个屏幕和所有其他带有 Fragments 的屏幕和 managing all the fragments thru the activity .
这是个好主意吗?我的回答是NO,但我仍然想更清楚地了解这个想法。
这个想法的优缺点是什么?
注意:
请不要给我 fragment 和 Activity 的链接。
编辑:
下面是 fragment 和 Activity :
优点:
缺点:
如果我们不考虑平板电脑,为什么要使用 fragment ? Activity和Fragment的起始时间差是多少?
最佳答案
这取决于您正在创建的应用程序。我已经使用这两种方法创建了几个应用程序,并且不能说一种方法总是比另一种更好。我创建的最新应用程序使用了单个 Activity 方法和 Facebook 样式导航。从导航列表中选择项目时,我会更新单个 Fragment 容器以显示该部分。
也就是说,拥有一个 Activity 也会带来很多复杂性。假设您有一个编辑表单,对于用户需要选择或创建的某些项目,需要他们转到新屏幕。对于 Activity ,我们只需使用 startActivityForResult 调用新屏幕,但使用 Fragments 没有这样的事情,因此您最终将值存储在 Activity 并让主编辑 fragment 检查 Activity 以查看数据是否已被选中并应显示给用户。
Aravind 所说的受限于单一的 Activity 类型也是正确的,但并不是真正的限制。您的 Activity 将是一个 FragmentActivity,只要您不需要 MapView 就没有真正的限制。如果您确实想显示 map ,可以这样做,但您需要修改 Android 兼容性库以使 FragmentActivity 扩展 MapActivity 或使用公开的可用android-support-v4-googlemaps .
最终,我认识的大多数采用 Activity 路线的开发人员都回到了多个 Activity 以简化他们的代码。 UI 方面,在平板电脑上,您有时会卡在使用单个 Activity 只是为了实现您的设计师想出的疯狂交互:)
-- 编辑--
Google 终于向兼容性库发布了 MapFragment,因此您不再需要使用 android-support-v4-googlemaps hack。在此处阅读更新:Google Maps Android API v2
-- 编辑 2--
我刚刚阅读了这篇关于现代(2017 年) fragment 状态的精彩文章,并记住了这个旧答案。想我会分享:Fragments: The Solution to All of Android's Problems
关于android - 一项 Activity 和所有其他 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12154505/
我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123
当我的预订模型通过rake任务在状态机上转换时,我试图找出如何跳过对ActiveRecord对象的特定实例的验证。我想在reservation.close时跳过所有验证!叫做。希望调用reservation.close!(:validate=>false)之类的东西。仅供引用,我们正在使用https://github.com/pluginaweek/state_machine用于状态机。这是我的预订模型的示例。classReservation["requested","negotiating","approved"])}state_machine:initial=>'requested
我有这个html标记:我想得到这个:我如何使用Nokogiri做到这一点? 最佳答案 require'nokogiri'doc=Nokogiri::HTML('')您可以通过xpath删除所有属性:doc.xpath('//@*').remove或者,如果您需要做一些更复杂的事情,有时使用以下方法遍历所有元素会更容易:doc.traversedo|node|node.keys.eachdo|attribute|node.deleteattributeendend 关于ruby-Nokog
我想获取模块中定义的所有常量的值:moduleLettersA='apple'.freezeB='boy'.freezeendconstants给了我常量的名字:Letters.constants(false)#=>[:A,:B]如何获取它们的值的数组,即["apple","boy"]? 最佳答案 为了做到这一点,请使用mapLetters.constants(false).map&Letters.method(:const_get)这将返回["a","b"]第二种方式:Letters.constants(false).map{|c
我需要一些关于TDD概念的帮助。假设我有以下代码defexecute(command)casecommandwhen"c"create_new_characterwhen"i"display_inventoryendenddefcreate_new_character#dostufftocreatenewcharacterenddefdisplay_inventory#dostufftodisplayinventoryend现在我不确定要为什么编写单元测试。如果我为execute方法编写单元测试,那不是几乎涵盖了我对create_new_character和display_invent
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
我们有一个字符串:“”这个正则表达式://i如何从当前字符串中获取所有匹配项? 最佳答案 "".scan(//)参见scan在ruby-docs上 关于ruby-如何遍历Ruby中所有正则表达式匹配的字符串?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6857852/