IcecreamSandwichのAstuetzViewpagerで小さな問題に直面しています。問題は、ページをスクロールしているときに、ページインジケーターと日付が消えたり色が変わったりしないことです。ハニカム前のデバイスの同じポケットベルは、魅力のように機能しています。同じ問題に直面している人はいますか?
1 に答える
1
私は解決策を見つけました。
Astuetz viewpagerライブラリを分析してきましたが、ページをスクロールしているときに、日付と色付きの下枠を含むテキストビューのonDrawメソッドが呼び出されないことがわかりました。その拡張textviewの親onLayoutメソッドでinvalidateメソッドを呼び出す必要があります。
このようにViewPagerTabsクラスを変更します(for looopにtab.invalidate()を追加します)
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
final int count = getChildCount();
final int center = this.getMeasuredWidth() / 2;
// At this position, the centered tab will be highlighted via
// ViewPagerTab.setCenterPercent(int percent)
final int highlightOffset = this.getMeasuredWidth() / 5;
// lay out each tab
for (int i = 0; i < count; i++) {
final ViewPagerTab tab = (ViewPagerTab) getChildAt(i);
tab.invalidate();
final int tabCenter = tab.layoutPos + tab.getMeasuredWidth() / 2;
int diff = Math.abs(center - tabCenter);
if (diff <= highlightOffset) {
final int x1 = highlightOffset;
final int y = (int) 100 * diff / x1;
tab.setCenterPercent(100 - y);
} else {
tab.setCenterPercent(0);
}
tab.layout(tab.layoutPos, this.getPaddingTop(), tab.layoutPos + tab.getMeasuredWidth(), this.getPaddingTop()
+ tab.getMeasuredHeight());
}
}
于 2012-05-16T08:28:19.417 に答える