2013-07-03 35 views
0

我有两个碎片A和B的活动。两者的宽度都设置为match_parent。片段B的高度为200dp,位于片段A的下方。我希望片段A的高度填充活动中剩余的空间。我怎样才能做到这一点?任何提示将不胜感激。如何使碎片高度占用全部剩余空间

我已经张贴了我activity_main.xml中

<LinearLayout xmlns:tools="http://schemas.android.com/tools" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:baselineAligned="false" 
android:orientation="vertical" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 

    <fragment 
     android:id="@+id/image_showing_list" 
     android:name="com.example.gallery.ImageShowingList" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" /> 

<fragment 
    android:id="@+id/image_showing_list_list" 
    android:name="com.example.gallery.ImageShowingList" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" /> 

</LinearLayout> 

回答

0

如果他们是在一个垂直LinearLayout,然后分配android:layout_height="0dp"android:layout_weight="1"到碎片A.

+0

感谢CommonsWare,但我得到这个错误信息,当我设置android:layout_height =“0dp”可疑大小:这将使重量不可见,很可能用于layout_width。为了清楚起见,我发布了我的activity_main.xml文件。 – Jomeno

+0

@Jomeno:“我已经发布了我的activity_main.xml文件以求清晰” - 这不是您的整个'activity_main.xml'文件。您可以知道,因为它不是有效的XML文件,因为没有单个根元素。你也会注意到,我的回答是以“如果它们在一个垂直的'LinearLayout'中开始的,你的片段的属性表明它们在一个'RelativeLayout'中,而不是一个垂直的'LinearLayout'。你可能希望发布你的* * **整个'activity_main.xml'文件,或至少在容器周围的两个''元素 – CommonsWare

+0

我已经使用的LinearLayout没有成功,但一旦试过我与你设定的Android的答案又试了一次:layout_height =“0dp “和android:layout_weight =”1“这一切都完全按照我想要的方式工作,非常感谢你,我一直在这个一段时间,我给你的答案竖起大拇指 – Jomeno

1

让你的线性布局android:orientation="vertical"并观看魔术发生

+0

谢谢,这也很有用,它证实了CommonsWare的答案。 – Jomeno