我有一个 PagerAdapter,它包括一个 10 元素数组。
private Object[] pageViewerList;
我填充它 ArrayList
ArrayList<View> array = new ArrayList<View>();
pageViewerList[y] = new ArrayList<View>();
每个页面都包含一个滚动视图。滚动视图包括一个线性布局。线性布局包含许多不同的元素,它们的引用存储在前面提到的 ArrayList 中。
@Override
public void startUpdate(ViewGroup arg0) {
Log.v(Constans.TAG, "currentCikkElementsPosition: "+FMFramework.currentCikkElementsPosition);
ArrayList<View> viewList = (ArrayList<View>) pageViewerList[FMFramework.currentCikkElementsPosition];
if (viewList!=null){
setFontSizeAndColor(viewList);
}
}
private void setFontSizeAndColor(ArrayList<View> viewList){
double rate = 1.5;
if (Constans.READ_MODE_DAY.equals(readMode)){
for (int i = 0; i < viewList.size(); i++) {
if (viewList.get(i).getTag().equals(TAG_TITLE)){((TextView)viewList.get(i)).setTextColor(Color.BLACK);((TextView)viewList.get(i)).setTextSize((int)(rate*CIKK_CIM_TEXT_SIZE));continue;}
if (viewList.get(i).getTag().equals(TAG_LEAD)){((TextView)viewList.get(i)).setTextColor(Color.BLACK);((TextView)viewList.get(i)).setTextSize((int)(rate*CIKK_LEAD_TEXT_SIZE));continue;}
if (viewList.get(i).getTag().equals(TAG_DATE)){((TextView)viewList.get(i)).setTextSize((int)(rate*CIKK_DATUM_TEXT_SIZE));continue;}
}
} else {
for (int i = 0; i < viewList.size(); i++) {
if (viewList.get(i).getTag().equals(TAG_TITLE)){((TextView)viewList.get(i)).setTextColor(Color.WHITE);((TextView)viewList.get(i)).setTextSize((int)(rate*CIKK_CIM_TEXT_SIZE));continue;}
if (viewList.get(i).getTag().equals(TAG_LEAD)){((TextView)viewList.get(i)).setTextColor(Color.WHITE);((TextView)viewList.get(i)).setTextSize((int)(rate*CIKK_LEAD_TEXT_SIZE));continue;}
}
}
}
当我更改视图背景(在 LinearLayout 中)时,屏幕正在刷新,因为我使用了 startUpdate PagerAdapter 方法。
但只有第一个和最后一个滚动视图。如果我向适配器调用 notifyDataSetChanged() 方法,当我停留在中间页面时,刷新不工作。但是,如果我滚动顶部或底部刷新完成。当我调用 notifyDataSetChanged() 时,为什么不立即刷新屏幕?