通知丢失的DotsPageIndicator位置

时间:2016-05-12 17:44:54

标签: android

我用一些Fragments制作了一个GridViewPager。我有点(DotsPageIndicator)记录网格的位置。当我想改变背景颜色时,我使用notifyDataSetChanged()并且点的位置丢失。我该如何解决这个问题?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_teste);
    pager = (GridViewPager) findViewById(R.id.pager);
    pager.setAdapter(new GridPagerAdapter(getFragmentManager()));
    dotsPageIndicator = (DotsPageIndicator) findViewById(R.id.page_indicator);
    dotsPageIndicator.setDotFadeWhenIdle(false);
    dotsPageIndicator.setPager(pager);
}
@Override
public void onResume(){
    super.onResume();
    runOnUiThread(new Runnable() {
        public void run() {
            pager.getAdapter().notifyDataSetChanged();
        }
    });
}

1 个答案:

答案 0 :(得分:1)

您是否尝试在DotsPageIndicator * .xml文件中使用android:keepScreenOn="true"? 如果您想更改GridViewPager将显示的不同片段的背景颜色:您是否尝试在不告知适配器的情况下更改Fragment类中片段的背景颜色?

这是一个帮助我实现GridViewPager的链接,也许会有所帮助:https://gist.github.com/gabrielemariotti/ca2d0a9f79b902b19a65

这些点就像我那样实现:

* .xml

中的

 <android.support.wearable.view.DotsPageIndicator
            android:id="@+id/dots"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center|top"/>

在onCreate中调用它:

 DotsPageIndicator dotsPageIndicator = (DotsPageIndicator) findViewById(R.id.dots);
            dotsPageIndicator.setPager(mGridViewPager);

最后一件事可能是当你改变片段的颜色时,它会与点重叠。这可能是没有显示点的原因。尝试只更改添加了GridviewPager的* .xml的颜色,并更改整个布局的颜色,并将片段设置为透明,这样可以使点再次可见。

希望有用!