如何在 Android 中完全隐藏 TableLayout 中的一行?

How to completely hide a row from TableLayout in Android?

使用 INVISIBLE 选项隐藏时间为 18、19、20、21 的行。但它仍然在最后留下空隙。有什么方法可以消除这个差距吗?

private void hideEveningHours() {  // hiding evening rows
    TableRow tr = (TableRow)findViewById(R.id.row18);
    tr.setVisibility(View.INVISIBLE);
    tr = (TableRow)findViewById(R.id.row19);
    tr.setVisibility(View.INVISIBLE);
    tr = (TableRow)findViewById(R.id.row20);
    tr.setVisibility(View.INVISIBLE);
    tr = (TableRow)findViewById(R.id.row21);
    tr.setVisibility(View.INVISIBLE);
}

使用

View.GONE

而不是

View.INVISIBLE

View.INVISIBLE 只会使 View 不可见。它仍然被添加到 View 层次结构中,并为其分配了 space。而 View.GONE ViewGroup 中删除了 View 就好像它从来没有出现过一样。更重要的是,您只需将其可见性设置为

即可取回它
View.VISIBLE