我用一些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();
}
});
}
答案 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的颜色,并更改整个布局的颜色,并将片段设置为透明,这样可以使点再次可见。
希望有用!