如何正确使用FrameLayout?

时间:2018-03-09 07:25:09

标签: android android-layout

我在下面附上了我的xml代码...如何在LinearLayout的顶部创建一个按钮。我尝试了我没有得到输出。

 <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <TextView
                android:layout_width="75dp"
                android:layout_height="75dp"
                android:layout_gravity="center_horizontal"
                android:textColor="@color/white"
                android:gravity="center"
                android:background="@drawable/circle_receive_bg"
                android:text="OR"/>


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#F6F6F6"
            android:layout_marginTop="45dp"
            android:orientation="vertical">


            <SurfaceView
                android:id="@+id/surfaceView"
                android:layout_width="150dp"
                android:layout_height="150dp"
                android:layout_marginTop="25dp"
              android:layout_gravity="center_horizontal|center_vertical"/>
            </LinearLayout>
 </FrameLayout>

我的输出如下:

enter image description here

预期输出:

enter image description here

请提供任何参考或我错误指定的内容...感谢adavace

2 个答案:

答案 0 :(得分:1)

在TOP

上添加TextView
   <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#F6F6F6"
                android:layout_marginTop="45dp"
                android:orientation="vertical">


                <SurfaceView
                    android:id="@+id/surfaceView"
                    android:layout_width="150dp"
                    android:layout_height="150dp"
                    android:layout_marginTop="25dp"
                  android:layout_gravity="center_horizontal|center_vertical"/>
                </LinearLayout>

     <TextView
                    android:layout_width="75dp"
                    android:layout_height="75dp"
                    android:layout_gravity="center_horizontal"
                    android:textColor="@color/white"
                    android:gravity="center"
                    android:background="@drawable/circle_receive_bg"
                    android:text="OR"/>

     </FrameLayout>

答案 1 :(得分:1)

ViewGroup保持子项从上到下<View>的高度在xml中定义,即xml中的底部<View>将位于其他视图之上

您需要最后定义TextView

<FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">      


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#F6F6F6"
            android:layout_marginTop="45dp"
            android:orientation="vertical">


            <SurfaceView
                android:id="@+id/surfaceView"
                android:layout_width="150dp"
                android:layout_height="150dp"
                android:layout_marginTop="25dp"
                android:layout_gravity="center_horizontal|center_vertical"/>

            </LinearLayout>

          //Define in bottom to make it on top of other views
           <TextView
                android:layout_width="75dp"
                android:layout_height="75dp"
                android:layout_gravity="center_horizontal"
                android:textColor="@color/white"
                android:gravity="center"
                android:background="@drawable/circle_receive_bg"
                android:text="OR"/>

 </FrameLayout>

或者如果您的minSDK是API 21,那么您可以使用android:elevation=1dp属性在顶部进行查看