如何在Framelayout中设置两个RelativeLayout?

时间:2014-01-13 06:19:39

标签: android android-layout

Fragment中,当if else函数中的代码检测到错误时,它会将setVisibility的{​​{1}}设置为Framelayout,如下面的伪代码

我希望视图位于顶部,因此我使用VISIBLE

framelayout

public static FrameLayout reconnect_layout; reconnect_layout = (FrameLayout) view.findViewById(R.id.reconnect_layout); if(error) { reconnect_layout.setVisibility(View.VISIBLE); }else( //do nothing } 为真时,它会显示framelayout。 但是error中的layout令人困惑,如下图所示。

https://drive.google.com/file/d/0B1K3BXnzMP5CLWQyME5ZdEZ0T0E/edit?usp=sharing https://drive.google.com/file/d/0B1K3BXnzMP5CbkQxRVByMzF5anc/edit?usp=sharing

当手机垂直时,framelayout看起来有点异常。 只有最后两个小部件(Imgbtn_reconnect和reconnect_text)的位置异常。

电话是水平的,view是无序的。

我希望view低于second RelativeLayout。但它无法使用second RelativeLayout

layout_below的代码如下所示。

xml

如何修改Framlayout中的小部件是正常的? 我希望<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:baselineAligned="false" android:orientation="vertical" > <FrameLayout android:id="@+id/player_frame" android:layout_width="fill_parent" android:layout_height="fill_parent"> <FrameLayout android:id="@+id/player_surface_frame" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" > <SurfaceView android:id="@+id/player_surface" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_gravity="center" /> </FrameLayout> </FrameLayout> <FrameLayout android:id="@+id/reconnect_layout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:visibility="gone" android:layout_below="@+id/top_buttonlayout1" android:layout_above="@+id/bottom_buttonlayout1" android:background="#000000"> <LinearLayout android:id="@+id/layout_imgbtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:orientation="horizontal" > <ImageView android:id="@+id/phone" android:layout_width="96dp" android:layout_height="96dp" android:src="@drawable/phone"/> <ImageView android:id="@+id/connect" android:layout_width="96dp" android:layout_height="96dp" android:src="@drawable/break1"/> <ImageView android:id="@+id/break_image" android:layout_width="96dp" android:layout_height="96dp" android:src="@drawable/camera_break" /> </LinearLayout> <LinearLayout android:id="@+id/Reconnect_text_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:gravity="center_horizontal" android:orientation="vertical" > <TextView android:id="@+id/break_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FFFFFF" android:gravity="center" android:text="@string/connection_break_message"/> <ImageButton android:id="@+id/Imgbtn_reconnect" android:layout_width="72dp" android:layout_height="72dp" android:layout_gravity="center_horizontal" android:src="@drawable/reconnect" /> <TextView android:id="@+id/reconnect_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/Reconnect" android:layout_gravity="center_horizontal" android:textColor="#FFFFFF" /> </LinearLayout> </FrameLayout> <LinearLayout android:id="@+id/top_buttonlayout1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginTop="10dp" android:orientation="vertical" > <RelativeLayout android:id="@+id/top_buttonlayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#444444" > <ImageView android:id="@+id/imageBackground" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignBottom="@+id/SettingButton" android:layout_toLeftOf="@+id/SettingButton" android:scaleType="fitStart" android:src="@drawable/smart_cam" /> <ImageButton android:id="@+id/SettingButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@+id/FileSavebutton" android:scaleType="fitXY" android:layout_marginRight="10dp" android:layout_marginLeft="10dp" android:background="@drawable/parmeter_setting" /> <ImageButton android:id="@+id/FileSavebutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:scaleType="fitXY" android:background="@drawable/save_in_camera" /> </RelativeLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/TimeStampLabel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dip" android:text="" android:textColor="#ffff00" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/RecordState" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dip" android:text="" android:textColor="#ff0000" /> <TextView android:id="@+id/RecordTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_margin="10dip" android:text="" android:textColor="#ff0000" /> </LinearLayout> </LinearLayout> <LinearLayout android:id="@+id/bottom_buttonlayout1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="vertical" android:background="#454749" > <RelativeLayout android:id="@+id/bottom_buttonlayout" android:layout_width="fill_parent" android:layout_height="wrap_content" > <ImageButton android:id="@+id/FileButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:scaleType="fitXY" android:background="#454749" android:layout_centerInParent="true" android:src="@drawable/file_viewer"/> <ImageButton android:id="@+id/photo_record_mode" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerInParent="true" android:scaleType="fitXY" android:background="#454749" android:src="@drawable/recordmode"/> <ImageButton android:id="@+id/recordButton" android:layout_width="80dp" android:layout_height="80dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:background="#454749" android:scaleType="fitXY" android:src="@drawable/record" /> </RelativeLayout> </LinearLayout> </RelativeLayout> 低于second RelativeLayout。但它无法使用second RelativeLayout

1 个答案:

答案 0 :(得分:0)

您确定需要FrameLayout吗? FrameLayout不会在屏幕上将一个视图放在另一个视图上方,它会绘制一个视图,然后在同一坐标中绘制另一个视图。例如,它可以通过先绘制原始图像然后绘制背景为#80000000的半透明视图来使图像变暗。

出于您的目的,您可以使用LinearLayout,并以编程方式将一个视图的可见性设置为GONE,另一个视图的可见性设置为VISIBLE。