片段未显示

时间:2014-01-03 05:48:57

标签: android android-layout android-fragments

这里我正在实现片段。当我把我的fragmentBottomFragment放在寻呼机下方时它不显示但是当我在上面写这个时它的工作。 我在这里粘贴我的xml代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ProductDetails" >

<fragment
    android:id="@+id/fragmentTopFragment"
    android:name="com.test.abc.ProductDetailsTopFragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

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

    <android.support.v4.view.ViewPager
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
 </android.support.v4.view.ViewPager>
       </RelativeLayout>
 <fragment
    android:id="@+id/fragmentBottomFragment"
    android:name="com.test.abc.ProductDetailsBottomFragment"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</LinearLayout>

2 个答案:

答案 0 :(得分:1)

relativeLayout ViewPager的高度为match_parent,因此它占据了线性布局中的所有空间,之后的任何内容都会超出屏幕。

试试这个:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="3"
tools:context=".ProductDetails" >

<fragment
    android:id="@+id/fragmentTopFragment"
    android:name="com.test.abc.ProductDetailsTopFragment"
    android:layout_width="match_parent"
    android:layout_height="0dp" android:layout_weight="1"/>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="0dp" android:layout_weight="1">

    <android.support.v4.view.ViewPager
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
 </android.support.v4.view.ViewPager>
       </RelativeLayout>
 <fragment
    android:id="@+id/fragmentBottomFragment"
    android:name="com.test.abc.ProductDetailsBottomFragment"
    android:layout_width="wrap_content"
    android:layout_height="0dp" android:layout_weight="1" />
</LinearLayout>

答案 1 :(得分:0)

问题是RelativeLayout的高度设置为match_parent。您可能希望整个布局为RelativeLayout。然后将每个片段对齐到顶部和底部。尝试更像这样的东西:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".ProductDetails" >

<fragment
    android:id="@+id/fragmentTopFragment"
    android:layout_alignParentTop="true"
    android:name="com.test.abc.ProductDetailsTopFragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<android.support.v4.view.ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/pager"
    android:layout_below="@id/fragmentTopFragment"
    android:layout_above="@+id/fragmentBottomFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

 <fragment
    android:id="@id/fragmentBottomFragment"
    android:layout_alignParentBottom="true"
    android:name="com.test.abc.ProductDetailsBottomFragment"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</RelativeLayout>