CirclePageIndicator屏幕底部

时间:2014-10-02 09:39:59

标签: android android-viewpager

我知道这是一个很常见的问题,但谷歌搜索了几个小时之后我找不到答案。

我正在使用PageViewIndicator库。我想在布局的底部添加圆形指示器。我正在尝试这个,但是当应用程序打开时,它会立即崩溃。当我交换CirclePageIndicator和ViewPager的位置时,它工作得很好,但指标显示在活动的顶部。

<LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">

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


<com.viewpagerindicator.CirclePageIndicator
    android:id="@+id/indicator"
    android:padding="10dip"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:background="#000000"

    />

   </LinearLayout>

这就是我在Java中初始化它的方式

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_take_test);

    mAdapter = new FragmentAdapter(getSupportFragmentManager());

    mPager = (ViewPager)findViewById(R.id.pager);
    mPager.setAdapter(mAdapter);

    mIndicator = (CirclePageIndicator)findViewById(R.id.indicator);
    mIndicator.setViewPager(mPager);

}

如何仅使用LinearLayout修复此问题?

1 个答案:

答案 0 :(得分:3)

改为使用RelativeLayout。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

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


    <com.viewpagerindicator.CirclePageIndicator
        android:id="@+id/indicator"
        android:padding="10dip"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:background="#000000"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"/>

</RelativeLayout>

因为你不想向我们展示你的完整活动(看你的字段声明)我猜你做错了,因为这段代码无法抛出强制转换异常:

FragmentAdapter adapter = new FragmentAdapter(getSupportFragmentManager());

ViewPager pager = (ViewPager)findViewById(R.id.pager);
pager.setAdapter(adapter);

CirclePageIndicator indicator = (CirclePageIndicator)findViewById(R.id.indicator);
indicator.setViewPager(pager);