ViewPager小部件未采用指定的权重

时间:2014-09-22 12:43:59

标签: android android-layout viewpagerindicator

我尝试将框架布局更改为viewpager布局。但是,我无法使我的viewpager布局占用与框架布局相同的空间。这种框架布局占据其父级的4个重量位置。如何组织我的viewpager占用相同的空间?

框架布局

<FrameLayout
        android:id="@+id/favorites"
        android:layout_marginTop="30dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="4"> 

viewpager layout

<LinearLayout
        android:id="@+id/favorites"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:layout_weight="4"
        android:weightSum="1"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="0.8"
            android:orientation="vertical" >

            <android.support.v4.view.ViewPager
                android:id="@+id/pager"
                android:layout_width="match_parent"
                android:layout_height="0dp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="0.2"
            android:orientation="vertical" >

            <com.viewpagerindicator.CirclePageIndicator
                android:id="@+id/indicator"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:padding="10dip" />
        </LinearLayout>
    </LinearLayout>

1 个答案:

答案 0 :(得分:1)

Viewpager默认采用整个屏幕宽度。您可以按overriding float getPageWidth method

进行更改

它接受0-1的值。 在您的情况下,您返回0.8

public float getPageWidth (int position)
{
return 0.8;
}