我需要按照图片中的布局实现界面。父视图和兄弟视图在一个垂直的LinearLayout中。因此,我需要让一个子视图覆盖其父视图。这在安卓中能实现吗?
我需要按照图片中的布局实现界面。父视图和兄弟视图在一个垂直的LinearLayout中。因此,我需要让一个子视图覆盖其父视图。这在安卓中能实现吗?
如果:
ViewGroup
那么你可能考虑在 parent 上设置 android:clipChildren 为 false。
我刚看到一个FrameLayout的例子,其中有一个TextView覆盖在ImageView上面。所以,显然有多种方法可以实现这个效果。你可能会问哪种方法是最好的......对此我不清楚,但这个人可能知道:
http://www.curious-creature.org/2009/03/01/android-layout-tricks-3-optimize-part-1/
将它们全部包含在RelativeLayout中,记住绘制顺序是自上而下的,所以将最上面的视图放在XML定义的底部。
android:clipChildren
设置为false
在父级的父级上。<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
android:id="@+id/parent1">
<FrameLayout
android:id="@+id/parent2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="64dp"
android:background="@android:color/holo_blue_bright">
<View
android:id="@+id/This_is_the_view_I_want_to_overlap_parent2"
android:layout_width="160dp"
android:layout_height="80dp"
android:layout_gravity="top|start"
android:layout_marginTop="-40dp"
android:background="#000000" />
</FrameLayout>
</FrameLayout>
至少有两种布局可以实现这个功能。AbsoluteLayout和RelativeLayout。我建议您将视图放在RelativeLayout中,并使用LayoutParams添加它们,以指定它们相对于父视图顶部和左侧的偏移量:
RelativeLayout.LayoutParams rlp;
label = new TextView(ctx);
label.setBackgroundColor(0x00000000);
label.setTextColor(0xFF7ea6cf);
label.setTextSize(13);
label.setGravity(Gravity.LEFT);
label.setText("Examples:\n- Fentanyl\n- Dilaudid 2 mg PO q 4 hours prn moderate pain");
rlp = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT,100);
rlp.topMargin=189;
rlp.leftMargin=30;
rlp.rightMargin=30;
rlParent.addView(label,rlp);