2

在 Android 中控制 Z 轴的最佳方法是什么?

这里:布局层?Z轴?,它指出最好的方法是使用 FrameLayout。我,我设法使用了具有以下结构的RelativeLayout:

RelativeLayout
-- LinearLayout
-- -- View v1 (bottom)
-- -- View v2 (bottom)
-- LinearLayout
-- -- View v3 (top)

但这并不能完全回答我的问题。当我希望我的 View v1 始终位于顶部,但 View v3 始终位于 View v2 的顶部时会发生什么。

像这样:

RelativeLayout
-- LinearLayout
-- -- View v1 z=1
-- -- View v2 z=3
-- LinearLayout
-- -- View v3 z=2

(其中 1 在 2 在 3 之上)

这在 Flex 中很容易完成……可以在 Android 开发中完成吗?

4

2 回答 2

1

使用FrameLayout,而不是 RelativeLayout 或 LinearLayout。

无论如何,在 Android 中将 Views 置于其他之上真的没有任何意义。用于View.setVisibility(View.GONE)告诉 Android 不绘制视图(它不会为它保留空间)并View.setVisibility(View.VISIBLE)让它绘制它。

于 2013-03-20T15:55:27.367 回答
1

您可以在 .xml 文件中定义 translationZ 参数。较高的值表示“离用户更近的位置”:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"

    android:translationZ="2dp">
</LinearLayout>

<ImageView
    android:layout_marginTop="-15dp"
    android:layout_marginBottom="-22dp"
    android:translationZ="1dp"

    android:layout_width="match_parent"
    android:layout_height="50dp"

    />

<ListView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    />

我发现这在将 ListView 移动到具有透明度的图形下方(连同负边距)以使其看起来像消失在线条后面时很有用,如下所示:

translationZ 的使用示例

于 2017-01-30T13:27:39.123 回答