我是第一次编程和实施ViewPager的新手。
ViewPager包含2个片段。当有人从Fragment 2切换回Fragment 1时,我需要创建一些逻辑来检查更改。这就是我到目前为止所拥有的:
mPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if (mPager.getCurrentItem() == 0) {
incentiveWindowReference.deActivateDeleteMode();
TextView bubbleText = (TextView) findViewById(R.id.bubble_text_xml);
boolean hasActiveItems = false;
for (int i = 0; i < incentiveList.size(); i++) {
if (incentiveList.get(i).getActiveOrInactive()) {
hasActiveItems = true;
}
}
if (hasActiveItems) {
bubbleText.setText("Finish Pomodoros to unlock Incentives!");
} else bubbleText.setText("No active Incentives!");
if (!timerWindowReference.getCurrentlyBreaking()) {
timerWindowReference.pause();
timerRunning = false;
Button startStopButton = (Button) findViewById(R.id.button);
startStopButton.setText("START");
timerWindowReference.activateResetSkip();}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
问题是,这部分使ViewPager变得迟钝。如果我发表评论,那就很顺利了。但我不知道我还能怎么做。 如果有人从片段2切换回片段1(或1到0)并在片段2中进行了一些更改,我需要更改片段1中的bubbleText。
修改
所以我把它缩小了。调用方法&#34; deactivateDeleteMode&#34;导致滞后。这是此方法的内容:
public void deActivateDeleteMode() {
delete.setText("DELETE");
addIncentiveButton.setVisibility(View.VISIBLE);
mDeleteMode = false;
setAdapter();
}
问题似乎是&#34; setAdapter()&#34;
我调用setAdapter的原因是,当mDeleteMode == false时,它使用不同的图像填充List。如果mDeleteMode == true,则显示垃圾箱图标并在单击时删除该项目。如果mDeleteMode == false,则显示正常图像。
我希望删除deleteMode,如果有人离开片段。