显示了一个布局中的两个片段,但只显示了一个

时间:2013-12-15 20:04:26

标签: android android-layout android-fragments

我正在开发一个Android项目,我正在尝试使用片段,但我遇到了问题。

在我的片段活动中,我有一个包含两个片段的布局。出于某种原因,当我加载活动时,我只看到第一个片段,它是查询编辑器。

以下是片段活动的布局

<?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">
    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal">
        <fragment android:name="com.BoardiesITSolutions.MysqlManager.QueryEditor"
            android:id="@+id/fragment_queryEditor"
            android:layout_width="fill_parent"
            android:layout_height="100dp"/>
        <fragment android:name="com.BoardiesITSolutions.MysqlManager.ResultViewer"
            android:id="@+id/fragment_resultViewer"
            android:layout_width="fill_parent"
            android:layout_height="300dp" />
    </LinearLayout>
</RelativeLayout>

以下是查询编辑器片段的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#c1c1c1c1" >
    <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="QUERY EDITOR"/>

</LinearLayout>

以下是结果视图片段的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:background="#000000">
    <TextView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="RESULT SET VIEW"/>

</LinearLayout>

由于某种原因,仅显示查询编辑器。

虽然目前查询编辑器设置为100dp且结果视图为300 dp但我只是将其作为测试。

我实际想要做的是将查询编辑器设置为100dp,结果视图占用剩下的空间。

感谢您提供的任何帮助

2 个答案:

答案 0 :(得分:0)

更改

<fragment android:name="com.BoardiesITSolutions.MysqlManager.QueryEditor"
        android:id="@+id/fragment_queryEditor"
        android:layout_width="fill_parent"
        android:layout_height="100dp"/>
    <fragment android:name="com.BoardiesITSolutions.MysqlManager.ResultViewer"
        android:id="@+id/fragment_resultViewer"
        android:layout_width="fill_parent"
        android:layout_height="300dp" />

 <fragment android:name="com.BoardiesITSolutions.MysqlManager.QueryEditor"
           android:id="@+id/fragment_queryEditor"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="100dp"/>
    <fragment android:name="com.BoardiesITSolutions.MysqlManager.ResultViewer"
        android:id="@+id/fragment_resultViewer"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="300dp" />

这样你的片段将占据LinearLayout

中的相同空间

答案 1 :(得分:0)

为什么LinearLayout内有RelativeLayout? 这应该做的事情:

<?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">
        <fragment android:name="com.BoardiesITSolutions.MysqlManager.QueryEditor"
            android:id="@+id/fragment_queryEditor"
            android:layout_width="fill_parent"
            android:layout_height="100dp"/>
        <fragment android:name="com.BoardiesITSolutions.MysqlManager.ResultViewer"
            android:id="@+id/fragment_resultViewer"
            android:layout_below="@+id/fragment_queryEditor"
            android:layout_width="fill_parent"
            android:layout_height="300dp" />
</RelativeLayout>