У меня есть ViewPager, содержащий WebView. После некоторого недостатка производительности прокрутки и консультации со StackOverflow я, наконец, отключил аппаратное ускорение для WebView. Это решает проблему, но теперь мне нужно отображать видео с Youtube и другие мультимедийные материалы в моем WebView. Согласно документации, для этого мне нужно снова включить аппаратное ускорение :(
Поскольку проблема с прокруткой появляется снова, я добавил ViewPager.OnPageChangeListener() в свой ViewPager, где отключил аппаратное ускорение, когда пейджер прокручивается, и включил это, когда пейджер бездействует:
pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrollStateChanged(int arg0) {
if(arg0 == ViewPager.SCROLL_STATE_IDLE){
webview.setLayerType(View.LAYER_TYPE_HARDWARE, null);
}
else{
// disable hardware acceleration
webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
}
});
Вроде работает немного, но при включенном аппаратном ускорении WebView короткое время мерцает, что раздражает. Я понятия не имею, что я могу попробовать дальше... какие-нибудь предложения?