android - 如何在不更改 View 索引的情况下将 View 置于 LinearLayout 的顶部?

标签 android android-linearlayout

例如,这里有 LinearLayout 中的 6 个 subview 。

  • 线性布局
    • 查看0
    • View 1
    • View 2
    • View 3
    • View 4
    • View 5

在某些情况下,我想让View0 位于其他 View 之上,也就是说,View0 不能与其他 View 重叠。

bringToFrontbringChildToFront 方法,它们会将 View0 的索引更改为:

  • 线性布局
    • View 1
    • View 2
    • View 3
    • View 4
    • View 5
    • 查看0

我试过 ViewCompat.setTranslationZ 方法,但是,它不起作用。

如何在不更改 View0 的索引的情况下使 View0 位于其他 View 之上?

最佳答案

您需要子类化 LinearLayout,使用 setChildDrawingOrderEnabled(true),并覆盖 getChildDrawingOrder() 以最后返回项目的索引.

因此在您的示例中,您将在 getChildDrawingOrder(int childCount, int i) 中返回以下内容:

return (childCount + (i-1)) % childCount;

关于android - 如何在不更改 View 索引的情况下将 View 置于 LinearLayout 的顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37234417/

相关文章:

android - PdfDocument - 在布局末尾剪切页面

android - ScrollView 和 LinearLayout 的困难

android - 错误类型 3 错误 : Activity class {} does not exist

android - 如何在 Google Play 服务中访问 Google Fit 用户目标?

Android Activity 到 Service 类

java - 从 Android 应用程序将数据发送到 Google 电子表格

android - 强制 View 至少占据其父级高度的一定百分比

android - 将多个 View 添加到 LinearLayout 的最快方法是什么?

android - LinearLayout subview 推送其他 View

android - 屏幕开/关的 BroadcastReceiver 不起作用