自定义寻呼机活动不会在自定义ImageView

时间:2016-04-12 16:06:12

标签: android android-viewpager android-adapter

我有自定义FragmentPagerAdapter和自定义ViewPager。

加载Activity时,前两个视图也会被加载。这些视图包含一个ImageView,其上绘制了一些自定义标签:

@Override
protected void onDraw(Canvas canvas) {
    Logger.d(iDomsAndroidApp.TAG, "On draw");
    drawLabels();
    super.onDraw(canvas);
}

但是,当转到下一页并加载第3页时,从不调用ImageView的onDraw,也不会绘制图像和标签。

(通过滑动或专门致电:

public void moveNext() {
    mPager.setCurrentItem(mPager.getCurrentItem() + 1);
}

在视图出现时是否需要有一个调用绘图的过程?

这是Android 6.0.1(API 23)的问题,但Android 5没有。任何人都可以帮我调试在初始加载后加载额外页面时没有调用draw()的原因。我现在花了几个小时,无法弄清楚Android 5和6之间的区别。

注意:它只发生在自定义ImageView上,因为所有其他UI元素(如小型WebView)似乎都没问题。

编辑: 视图会重新绘制,例如更改设备的方向,因此它似乎只是在初始创建或显示。

EDIT2: 我也尝试实现FragmentStatePagerAdapter,并调用mAdapter.notifyDataSetChanged();触发视图的重新创建:

public int getItemPosition(Object item) {
    return POSITION_NONE;
}

现在,所有后续视图(包括第二个视图)都没有填充ImageView。所以当片段重新绘制时似乎出现了问题,

0 个答案:

没有答案