/ TabHostでTabWidgetからビューを削除すると、レイアウトが同じままになる(ANDROID) - アンドロイド、ビュー、タブ、android-tabhost、tabwidget

TabHidのTabWidgetからのRemoing Viewはレイアウトを同じにしますか? (アンドロイド) - アンドロイド、ビュー、タブ、アンドロイドタブホスト、タブウィジェット

明確にするためだけに。 私はTabHostを持っていて、そのtabhostの中には5つのタブがあります。 tabhostで遊んでいるので、タブの1つ(子ビューの1つ)を閉じようとしています。問題は、それがうまくいっても、タブの下のレイアウトは同じままであるということです。つまり、タブにテキストビューを閉じてメインタブにボタンを配置した場合、テキストビューでタブを閉じるとタブは消えますがテキストビューは残りますこれは私がタブを閉じるのに使っているコードです:

    int vPos = mHost.getCurrentTab();
TabWidget tWidget = mHost.getTabWidget();

if (vPos != 0) {
tWidget.setCurrentTab(0);
tWidget.removeView(mHost.getTabWidget().getChildAt(vPos));

}

だから基本的にはタブを閉じて、他のタブ、ただしタブの下のレイアウトはまったく同じです。私は人々が私にレイアウトとそれ以外を含む完全なコードを投稿して欲しいのを知っています、しかしこれは一般的な事柄です、それはレイアウトを考えていません、それはタブだけを考えます。

おそらくビューでinvalidate()を呼び出すことになっていますが、子ビュー、タブウィジェット、またはタブホストのいずれを無効にしても機能しません。

回答:

回答№1の場合は3

残念ながらこれは内部的に問題ですremoveTab関数の欠如によるTabWidget。 TabWidgetからremoveViewを呼び出すと、タブの概念がないViewGroupクラスからremoveViewが呼び出されます。 その結果、実際には実際のタブを削除するだけで、下のインデックスとレイアウトは影響を受けません。

過度の回避策は、removeAllViewsを呼び出して、すべてのビューを再追加することです。