在Android中控制Z轴的最佳方法是什么?
这里:Layout Layers? Z-Axis?,它声明最好的方法是使用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开发中完成吗?
答案 0 :(得分:1)
使用FrameLayout,而不是RelativeLayout或LinearLayout。
无论如何在Android中拥有顶级视图真的没有任何意义。使用View.setVisibility(View.GONE)
告诉Android不要绘制视图(它不会为它保留空间)和View.setVisibility(View.VISIBLE)
来绘制它。
答案 1 :(得分: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移动到具有透明度的图形下方(与负边距相结合)时非常有用,使其看起来像消失在线后面,如下所示: