需求:兩個垂直排列的 TextView,若下方 text2 無內容,則上方 text1 垂直置中(彷彿 text2 不存在)。
String text2 = tv2.getText().toString();
if (text2 == null || text2.isEmpty()) {
// 隱藏 text2 並讓 text1 置中
tv2.setVisibility(View.GONE); // 佔位空間也消失
tv1.setGravity(Gravity.CENTER_VERTICAL);
} else {
tv2.setVisibility(View.VISIBLE);
tv1.setGravity(Gravity.TOP); // 或預設對齊
}
關鍵點:View.GONE 會讓佈局重新計算,text1 自然置中於父容器;若只用 INVISIBLE 仍佔空間,無法達到效果。