0

android:clipChildren 是否仍然有效?我有一个大小的 AbsoluteLayout 并将 clipChildren 设置为 false。当我添加比 AbsoluteLayout 更大的 childeren 时,childeren 仍然被剪裁。

有人搞定这个吗?

使用 Android 2.2(API 级别 8)


更新 20-01-11:

我可以用RelativeLayout 做一些类似的东西,但是android:clipChildren 能解决这个问题吗?顺便说一句,我的应用程序不需要在除 Android 2.2 之外的任何其他平台上运行。

4

2 回答 2

2

绝对布局已弃用。我建议使用不同的东西。

此类已弃用。请改用 FrameLayout、RelativeLayout 或自定义布局。

http://developer.android.com/reference/android/widget/AbsoluteLayout.html

编辑:回答您的评论:

被弃用意味着由于某种原因,他们停止了开发它。也许有更好的替代品,也许他们不喜欢它的工作方式。无论如何,他们可能会在未来的版本中放弃这种布局(这意味着您的应用将无法在未来的 android 版本中运行)。

备择方案:

框架布局:

FrameLayout 旨在阻止屏幕上的一个区域以显示单个项目。您可以将多个子项添加到 FrameLayout,但所有子项都固定在屏幕的左上角。孩子们被画在一个堆栈中,最近添加的孩子在最上面。框架布局的大小是其最大子项(加上填充)的大小,可见与否(如果 FrameLayout 的父项允许)。只有当 setConsiderGoneChildrenWhenMeasuring() 设置为 true 时,才会使用 GONE 的视图来调整大小。

http://developer.android.com/reference/android/widget/FrameLayout.html

相对布局

您还可以使用相对布局。将每个视图按其父视图对齐,并根据需要设置左边距和上边距。这可能是您最好的选择IMO。我以前做过,而且效果很好。

于 2011-01-18T12:51:22.183 回答
1

正如 Pedro 所说,此功能可能是 AbsoluteLayout 弃用后的新增功能,因此如果尚未实施,它将永远无法工作。

至于评论“这意味着您的应用程序将无法在未来版本的 android 中运行”,谷歌承诺永远不会出现这种情况。

黛安·哈克伯恩

2009 年 5 月 4 日星期一上午 10:00,Sundog 写道:

我有一个评价很高的应用程序,它只是......不能......不能......被......编写......没有 AbsoluteLayout,无论它踩到了谁的 Java 敏感性。我猜Android在应用程序方面做得很好,它可以负担得起关闭整个类别的游戏。

AbsoluteLayout 从 1.5 中消失了吗?不,你不能用它写 1.5 应用程序吗?不。我们有没有说过我们有任何计划在未来的任何时候完全删除它?不,你需要找到更好的理由成为受害者。如果找不到,请告诉我们您的应用程序的名称,我们可以确保在下一个版本中打破它。然后你可以——真的——抱怨!
-- Dianne Hackborn
Android 框架工程师
hack...@android.com

然后:

我再说一遍:我们不会从未来的版本中删除 AbsoluteLayout,但我们强烈劝阻人们不要使用它。

我会说它不会被删除是一个安全的赌注,但它也不会获得新的功能/修复。

于 2011-06-06T17:07:04.353 回答