2011-04-28 47 views
4

我对一个Activity使用了一个AbsoluteLayout,并将它定义在一个xml文件中。该类型已弃用

我添加了这行代码,因为我试图动态添加按钮列表,并且我收到以下警告。

private AbsoluteLayout layout = (AbsoluteLayout) findViewById(R.id.viewsaved); 

The type AbsoluteLayout is deprecated 

该代码仍然显示正常工作,但我只是好奇,看看是否有人知道为什么会出现此警告?

感谢您的帮助!

+0

这意味着你不应该再使用AbsoluteLayout。 FrameLayout或RelativeLayout是新的热点。 – EboMike 2011-04-28 23:16:39

回答

10

在计算机软件或创作 程序标准和文档, 术语弃用被应用于被取代 ,应该避免 软件功能。虽然 弃用的功能留在 当前版本中,它们的使用可以提高 警告消息,建议 替代的做法,并弃用 可能表明该功能将 在未来删除。特点是 弃用,而不是 去除,以提供向后兼容性 ,给谁 已经使用该功能的时候带上 他们的代码放到遵守 新标准的程序员。

Wikipedia - Deprecation

总之,该功能将工作现在,但很可能会在未来的版本中删除。你会想找到一些东西来替代它。

AbsoluteLayout建议您使用FrameLayoutRelativeLayout或自定义布局。

+0

非常好!非常感谢你! – korymiller 2011-04-28 23:20:02

1

它出现是因为它已被弃用。无论如何,你不应该使用AbsoluteLayout,它有一个很好的理由被弃用。

原因是它不允许自动处理多种屏幕尺寸,这是Android的一个非常重要的方面。

+0

我正在使用AbsoluteLayout,(因为它是唯一符合我的用例的布局,而且我们对其他布局有很多讨论,但这只是浪费很多时间来解决已经解决的问题,所以我们正在继续使用它。) 现在,我们希望摆脱平台将其删除的可能性,因此,我们希望克隆代码并在项目中保留副本。只是将代码复制到项目中不起作用。 (因为Android Studio抱怨从'View'类继承的'mPaddingLeft')。这里有什么问题吗? – IcyFlame 2016-06-10 12:30:16

0

弃用的代码是为了向后兼容的原因(即用于旧程序)而仍然处于发行版中的代码,但已被更新且更好的代码所取代。

有关按钮列表,我会建议您使用ListViewLinearLayout,因为这些按钮可让您以列表格式添加项目。如果您需要使用AbsoluteLayout进行定位,那么您需要更具创造性才能使用LinearLayout s和RelativeLayout s

-1

在大多数Java库,尤其是非常受欢迎的,维护人员非常努力,以确保如果你让代码针对的是旧版本,它不会有一个较新的版本(向后兼容性打破库。 )

但是,有时他们意识到他们犯了一般性错误,这对图书馆来说基本是不可或缺的。在这种情况下,他们不赞成。这意味着“是的,它会像以前一样工作,但要警告:它存在严重的缺陷。”通常情况下,他们会按照建议的替代方案进行跟进

在相关说明中,虽然我还没有做Android,但我做了很多Java gui开发。说“我只是用绝对定位,我没有任何问题跟踪任何事情”,这很诱人。但是随着程序的增长,肯定会很难全面检查。只有现在,你有大量的代码必须重构,以将其更改为更易维护的布局。不要陷入这个陷阱:从一开始就使用一个好的布局管理器!

相关问题