TabHost
は水平の内に5つのタブを含みますScrollView
。私はすべてのタブが83dpの最小サイズで同じサイズを持つようにします。 5番目のタブが画面に収まると、すべてのタブが画面全体を埋めるように拡大されます。これを達成するためのコードは次のとおりです。TabHostは画面幅に応じてタブ幅を計算するときに画面全体を塗りつぶしません
基本的にコードは正常に動作します。ただし、画面幅全体がタブで使用されるわけではありません。例:96ピクセルの5つのタブは、ランドスケープモード(約20ピクセルの未使用スペース)で320×480の画面を塗りつぶすわけではありませんが、96×5は正確に480です。タブが本当に画面全体を埋めるようにコードを改善するにはどうすればよいですか?
UPDATE: ソリューション:私は約4〜5%の各タブのサイズを変更することは非常にうまく機能していることが見つかりました:
tabWidth = (int) (tabWidth *1.04);
UPDATE 2: 私は原因を見つけたと思います問題。タブの左右の余白は負です。これらのマージンを考慮すると問題が解決し、TabHost
は画面全体を正確に塗りつぶします。
タブボタンの間にはギャップがありますか?それは20pxかもしれない – blessenm
はい、タブの間に小さなギャップがありますが、私はそれらが使用されていないスペースの理由であるとは思わない。それらは、TabHostをより幅広く(幅+ギャップ)、小さすぎないようにすべきである。私は何とか 'tabWidth'に1.04を掛けて問題を解決しました。しかし、これは単なる近似であり、依然として改善が必要です。 – crnv