2016-05-12 87 views
0

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

@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

您是否尝试过在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的颜色,并更改整个布局的颜色,并将碎片设置为透明,这可能会使点再次显示。

希望有帮助!