我遇到一個問題,其中可見狀態爲GONE的視圖在屏幕上佔用空間(不合需要)。上API級總是發生此問題< = 7級的設備,但直到最近纔在8+設備(後我利用AsyncTasks填充某些字段,每Show a progress bar when an Activity is loading如)查看能見度狀態GONE佔用屏幕上的空間
上下文的位: 我創建延伸的LinearLayout定製視圖它包含一個「標題」按鈕和(用戶定義;在某些情況下,它是一些TextViews,在其他人是TableLayouts)「內容」。這個視圖的目的是切換內容onClick標題按鈕的視圖(我不相信有一個內置的小工具這個..我可能是錯的)。
在onLayout()我明確設置的,除了標題GONE所有子視圖的可見性狀態,第一時間是要繪製:
protected void onLayout(boolean changed, int l, int t, int r, int b) {
if(initialDraw) {
setContentsVisible(false);
initialDraw = false;
}
super.onLayout(changed, l, t, r, b);
}
public void setContentsVisible(boolean visible) {
for(int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);
if(child != mTitle) {
child.setVisibility(visible ? VISIBLE : GONE);
}
}
}
哎呦。這是一個複製粘貼錯誤,我確實在調用super.onLayout()。 – Adam 2011-02-04 15:57:50