在LinearLayout上方的第一个视图/重叠的第二个视图

Ril*_*eyE 10 android overlap android-linearlayout view-hierarchy

是否可以在LinearLayout中显示与第二个重叠的第一个视图?

我想像我这样布局我的观点:

<LinearLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_alignParentRight="true" >

    <TextView
        android:id="@+id/firstTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrapContent" />

    <TextView
        android:id="@+id/secondTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

但我需要从布局第一个视图firstTextView放置在(重叠)secondTextView的顶部.这可能吗?我正在使用LinearLayout,因为我也在使用边距来获得重叠效果.

Ton*_* Vu 6

对我有用并可能对你有用的是:

  1. 用RelativeLayout而不是LinearLayout包装你的2个TextViews并设置android:clipChildren ="false".这将防止重叠部分被剪裁.
  2. 在第一个TextView下面布置第二个TextView
  3. 在代码中,在第一个TextView上调用bringToFront().默认情况下,首先绘制第一个textview,并将其放在第二个textview下面.调用bringToFront()将改变该顺序.

所以布局可以是这样的:

<RelativeLayout  
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" 
android:clipChildren="false">

<TextView
    android:id="@+id/firstTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#00000000"
    android:text="First View" />

<TextView
    android:id="@+id/secondTextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/firstTextView"
    android:background="#00000000"
    android:layout_marginTop="-13dp"
    android:text="Second View"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

和:

TextView firstTextView = (TextView)findViewById(R.id.firstTextView);
firstTextView.bringToFront();
Run Code Online (Sandbox Code Playgroud)

  • 你不需要clipChildren.如果两个视图在同一布局中,则它们可以重叠.在相对布局中,这是一直进行的.ClipChildren用于让事物在父相对布局之外绘制.也不需要BringToFront,z顺序由定义视图的文件中的顺序控制. (4认同)

Voi*_*icu 5

如果您只想垂直重叠两个视图,请使用以下XML:

<LinearLayout  
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/firstTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#00000000"
        android:text="First View" />

    <TextView
        android:id="@+id/secondTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#00000000"
        android:layout_marginTop="-13dp"
        android:text="Second View"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明