为什么我的ViewPager仅在设置固定高度时显示内容?

时间:2015-08-12 05:59:19

标签: android android-viewpager xml-layout

我将ViewPager放在Fragment内。

当我为layout_height=300dp等ViewPager设置固定高度时,ViewPager及其内容可见。

但是,当我将Viewpager的高度更改为fill_parentmatch_parentwrap_content时,Viewpager不会被显示出来。

我在下面发布我的布局。请帮助。

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"

    android:weightSum="3" >

    <Button
        android:id="@+id/btn_reviews"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/reviews" />

    <Button
        android:id="@+id/btn_description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/Description" />

    <Button
        android:id="@+id/btn_specs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/Specs" />
</LinearLayout>

<android.support.v4.view.ViewPager
    android:id="@+id/pagers"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000000" >
</android.support.v4.view.ViewPager>

</LinearLayout>   

3 个答案:

答案 0 :(得分:0)

尝试下面的代码......同时确保当你给予重量时让孩子

 for orientation="horizontal" (parent), (child) android:layout_width="0dp"

 for orientation="vertical" (parent),(child) android:layout_height="0dp"

代码XML:

<?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:weightSum="1" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:orientation="horizontal"
    android:layout_weight=".2"  //change .2 value accordingly
    android:weightSum="1" >

<Button..

<Button..

<Button..

</LinearLayout>

<android.support.v4.view.ViewPager
    android:id="@+id/pagers"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:background="#000000"
   android:layout_weight=".8"    //change .8 value accordingly
   >
</android.support.v4.view.ViewPager>

答案 1 :(得分:0)

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


    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="3">

        <Button
            android:id="@+id/btn_reviews"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="b0" />

        <Button
            android:id="@+id/btn_description"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="b1" />

        <Button
            android:id="@+id/btn_specs"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="b2" />
    </LinearLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/pagers"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#000000"></android.support.v4.view.ViewPager>
</LinearLayout>

答案 2 :(得分:0)

当您对父布局使用权重属性时,您必须将子视图高度或权重设置为0dip。如果布局的方向是Vertical,则必须将子视图的layout_height设置为0dip,以便android:layout_weight =&#34; 1&#34;能行得通。此外,如果布局的方向为“水平”,则必须将子视图的layout_widht设置为0dip。另外,你不要在孩子身上填充fill_parent,因为它覆盖了所有页面,而是使用wrap_content,根据你想要做的事情,使用权重。假设您希望布局是垂直的,并且您的子lineatlayout是水平的,请尝试:

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

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:weightSum="3"
    android:orientation="horizontal">

<Button
    android:id="@+id/btn_reviews"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="test" />

<Button
    android:id="@+id/btn_description"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="testDescription" />

<Button
    android:id="@+id/btn_specs"
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="testSpecs" />

</LinearLayout>

<android.support.v4.view.ViewPager
   android:id="@+id/pagers"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:background="#000000"
   android:layout_weight="3"/>

  </LinearLayout>