我在使用TabLayout
和ViewPager
時出現了一個奇怪的問題。當我滑動標籤時,短時間內只顯示文本的一小部分。如果我選擇標籤,則不存在這樣的問題。什麼可能是錯的?使用滑動手勢的ViewPager渲染延遲
編輯: 我已經重寫我的ViewPager
的onMeasure
方法:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
if(null != getAdapter()) {
int height = 0;
View child = ((FragmentPagerAdapter) getAdapter()).getItem(getCurrentItem()).getView();
if (child != null) {
child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
height = child.getMeasuredHeight();
if (android.os.Build.VERSION.SDK_INT == android.os.Build.VERSION_CODES.JELLY_BEAN && height < getMinimumHeight()) {
height = getMinimumHeight();
}
}
getLayoutParams().height = height;
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
此動態設置每個ViewPager
片段的高度。也許這與問題有關?
你在做'setOnUserVisibleHint'的東西嗎? –
@VeneetReddy no。 –
停在這裏。爲什麼要重新計算「onMeasure」中頁面的高度?你是否意識到性能後果?這看起來大錯特錯... – Mike