三種狀態對照
| 常數 | 值 | 顯示 | 佔據版面 | 適用場景 |
View.VISIBLE | 0 | ✅ | ✅ | 正常顯示 |
View.INVISIBLE | 4 | ❌ | ✅ | 隱藏但保留空間 (如暫時隱藏錯誤訊息) |
View.GONE | 8 | ❌ | ❌ | 完全移除 (如條件式顯示區塊) |
錯誤示範
// ❌ 錯誤:使用數值 1
et_miyue.setVisibility(1);
// ✅ 正確:使用常數
et_miyue.setVisibility(View.VISIBLE);
et_miyue.setVisibility(View.GONE);
XML 預設可見性
動態切換最佳實務
// 切換顯示/隱藏
private void toggleView(View v, boolean show) {
v.setVisibility(show ? View.VISIBLE : View.GONE);
}
// 檢查目前狀態
if (view.getVisibility() == View.VISIBLE) { ... }
效能提示
GONE 會觸發 requestLayout() 重新佈局,頻繁切換時考慮 INVISIBLE 或 alpha=0f (API 11+)
- 大量 View 切換時,建議用
ViewGroup.setVisibility() 批次處理