2014-06-20 101 views
0

我的設備處於橫向模式,我已經在LinearLayout上放置了一個FrameLayout。這FrameLayout裏面有一個VideoView和屬性android:layout_width="wrap_content"。 在FrameLayout(和裏面的第一個LinearLayout)我想把其他LinearLayout與一些ImaveViewTextView裏面。 關鍵是這第二個LinearLayout的寬度應該與FrameLayout相同,它將具有其自己內容的大小。Android linearlayout與framelayout的寬度相同

我該怎麼做?任何android:layout_width="wrap_content",android:layout_width="fill_parent"android:layout_width="match_parent"屬性都可以正常工作。

這裏是我的.xml代碼的例子:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/parent" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_gravity="center" 
    android:gravity="center" 
    android:orientation="vertical" > 

    <FrameLayout 
     android:id="@+id/frame" 
     android:layout_width="wrap_content" 
     android:layout_height="0dip" 
     android:layout_gravity="center_vertical|center_horizontal" 
     android:layout_weight="2.5" 
     android:background="@color/yell" 
     android:gravity="center_vertical" 
     android:paddingBottom="5dp" 
     android:paddingLeft="5dp" 
     android:paddingRight="5dp" 
     android:paddingTop="5dp" > 

     <VideoView 
      android:id="@+id/videoView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:gravity="center" > 
     </VideoView> 

     <Button 
      android:id="@+id/videoplay" 
      android:layout_width="50dp" 
      android:layout_height="50dp" 
      android:layout_gravity="center_vertical|center_horizontal" 
      android:onClick="FullScreenVideo" > 
     </Button> 
    </FrameLayout> 

    <LinearLayout 
     android:id="@+id/linLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_gravity="bottom" 
     android:background="@color/yell" 
     android:orientation="horizontal" 
     android:paddingLeft="5dp" 
     android:paddingRight="5dp" 
     android:visibility="visible" 
     android:layout_weight="0.5" > 

     <ImageView 
      android:id="@+id/usrimg" 
      android:layout_width="30dp" 
      android:layout_height="30dp" 
      android:layout_gravity="center_vertical" 
      android:gravity="center_vertical" 
      android:src="@drawable/usrpicture" > 
     </ImageView> 

    </LinearLayout> 
</LinearLayout> 

回答

1

你有你的主要佈局(LinearLayout)的android:layout_width屬性設置爲wrap_content

這樣,您的主佈局的寬度將適合其子的寬度。由於第二個LinearLayout的寬度設置爲fill_parent,因此將僅使用FrameLayout的寬度。

但是,由於您的主要佈局不適合所有屏幕寬度,所以將爲空白區域(主要佈局所在的空間)設置默認背景(白色)。

爲了避免這種情況,您可以將所有佈局封裝在RelativeLayout(或LinearLayout無關緊要)中,將此佈局的寬度設置爲match_parent並設置所需的背景。所以你的佈局將使用所有的屏幕空間。

它會給你:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_background="{Your background}"> 

    <LinearLayout 
     android:id="@+id/parent" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="center" 
     android:gravity="center" 
     android:orientation="vertical" > 

     <FrameLayout 
      android:id="@+id/frame" 
      android:layout_width="wrap_content" 
      android:layout_height="0dip" 
      android:layout_gravity="center_vertical|center_horizontal" 
      android:layout_weight="2.5" 
      android:background="@color/yell" 
      android:gravity="center_vertical" 
      android:paddingBottom="5dp" 
      android:paddingLeft="5dp" 
      android:paddingRight="5dp" 
      android:paddingTop="5dp" > 

      <VideoView 
       android:id="@+id/videoView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:gravity="center" /> 

      <Button 
       android:id="@+id/videoplay" 
       android:layout_width="50dp" 
       android:layout_height="50dp" 
       android:layout_gravity="center_vertical|center_horizontal" 
       android:onClick="FullScreenVideo" /> 

     </FrameLayout> 

     <LinearLayout 
      android:id="@+id/linLayout" 
      android:layout_width="match_parent" 
      android:layout_height="0dip" 
      android:layout_gravity="bottom" 
      android:background="@color/yell" 
      android:orientation="horizontal" 
      android:paddingLeft="5dp" 
      android:paddingRight="5dp" 
      android:visibility="visible" 
      android:layout_weight="0.5" > 

      <ImageView 
       android:id="@+id/usrimg" 
       android:layout_width="30dp" 
       android:layout_height="30dp" 
       android:layout_gravity="center_vertical" 
       android:gravity="center_vertical" 
       android:src="@drawable/usrpicture" /> 

     </LinearLayout> 
    </LinearLayout> 
</RelativeLayout> 

BTW,你應該使用match_parent而不是fill_parent,因爲它已經過時了。