Android CircularPageIndicator未在协调器布局中显示

时间:2015-11-28 12:35:28

标签: android android-layout

我使用CoordinatorLayout在ViewPager下面设置CircularPagerIndicator但它没有显示。下面是XML

<?xml version="1.0" encoding="utf-8"?>
 <android.support.design.widget.CoordinatorLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/main_content"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:fitsSystemWindows="true"
   tools:context="mypackage.HomeActivity">

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingTop="@dimen/appbar_padding_top"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|enterAlways"
        app:popupTheme="@style/AppTheme.PopupOverlay">

    </android.support.v7.widget.Toolbar>

</android.support.design.widget.AppBarLayout>


<android.support.v4.view.ViewPager
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingRight="@dimen/view_pager_padding"
    android:paddingLeft="@dimen/view_pager_padding"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

<mypackage.CirclePageIndicator
    android:id="@+id/indicator"
    android:clickable="false"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    app:radius="5dp"
    app:fillColor="#FF888888"
    app:pageColor="#88FF0000"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"/>


<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="end|bottom"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>

下面的方法从onCreate方法

调用我的Activity
private void displayCarts(){
    mSectionPagerAdapter = new SectionPagerAdapter(getSupportFragmentManager(), mCartCount, cartMap);
    mViewPager = (ViewPager) findViewById(R.id.container);
    mViewPager.setAdapter(mSectionPagerAdapter);

    mCartCountIndicator = (CirclePageIndicator) findViewById(R.id.indicator);
    mCartCountIndicator.setViewPager(mViewPager);
}

不确定会出现什么问题。 我按照此链接提出的建议:Android CirclePageIndicator not working  但在协调器布局jusr中添加额外的相对或线性布局以显示CircularPagerIndicator并不符合我的需要。有什么建议吗?

2 个答案:

答案 0 :(得分:1)

CoordinatorLayout中,实际的可滚动视图会在屏幕下展开,因此在滚动时,它会随着工具栏的隐藏而向上移动。下面的任何东西都不可见。您可以尝试android:layout_gravity="bottom|center_horizontal"将其放置在屏幕底部

<application.payrange.com.payrage.ui.CirclePageIndicator
    android:id="@+id/indicator"
    android:clickable="false"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_gravity="bottom|center_horizontal"
    app:radius="5dp"
    app:fillColor="#FF888888"
    app:pageColor="#88FF0000" />

此外,您可以将其放置在容器内,并为其提供背景颜色,使其看起来更好。您也可以使用Behavior为其提供滚动效果,就像工具栏

一样

答案 1 :(得分:0)

好吧,现在我回到为View Pager和PagerIndicator添加linearlayout。我将topmargin添加到Linearlayout以显示整个视图寻呼机。不是最好的解决方案,但现在就可以做到。

<?xml version="1.0" encoding="utf-8"?>
 <android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="mypackage.HomeActivity">

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingTop="@dimen/appbar_padding_top"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|enterAlways"
        app:popupTheme="@style/AppTheme.PopupOverlay">

    </android.support.v7.widget.Toolbar>

</android.support.design.widget.AppBarLayout>

 <LinearLayout android:layout_width="match_parent"
    android:orientation="vertical"                                                                                                                         android:layout_gravity="center_horizontal"
    android:layout_height="match_parent"
    android:layout_marginTop="70dp">
<android.support.v4.view.ViewPager
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:paddingRight="@dimen/view_pager_padding"
    android:paddingLeft="@dimen/view_pager_padding"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

<mypackage.CirclePageIndicator
    android:id="@+id/indicator"
    android:clickable="false"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    app:radius="5dp"
    app:fillColor="@color/default_circle_indicator_stroke_color"
    app:pageColor="@color/circlepageindicator_fill_color"

    android:layout_margin="@dimen/fab_margin"/>
</LinearLayout>>


<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="end|bottom"
    android:layout_margin="@dimen/fab_margin"
    android:src="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>