私のアプリでは、同時に画面に表示されるいくつかの表面ビュー (ビデオと Google マップを表示するため) を使用しています。ここで、これらのビューの構成 (位置、サイズ、可視性) を変更する可能性を追加する必要があります。構成を切り替えても、ビデオの再生が停止したり、マップがリセットされたりしてはなりません (kml レイヤーを追加できます)。
この目標では、構成を切り替えるときに、新しい構成でまだ使用しているビューの位置とサイズを変更し、他のビューを非表示にします。
問題は、(コンテナで setVisibility(View.GONE) を使用して) サーフェス ビューを非表示にした場合、その位置が新しい構成の別のサーフェス ビューの位置と重なっている場合、非表示にする必要があるサーフェス ビューがまだ表示されていることです。
たとえば、次のように、左側にビデオ、右側にマップを表示する構成を作成できます。
1、2、3、または 4 のバー ボタンをクリックして、構成を変更します (たとえば、マップのみの構成の場合)。ビデオは引き続きマップ上に表示されます。
何か案が ?また、非表示のサーフェス ビューの幅と高さを 0 に設定しようとしましたが、機能しません (効果はありませんが、たとえばサイズを 100x100 に設定すると機能します)。サーフェス ビューを画面の外に (負のマージンを付けて) 配置しても機能しません。
編集: 負のマージンを設定すると、Galaxy nexus で機能しますが、Galaxy タブでは、サーフェス ビューが強制的に画面に表示されます。フラグ FLAG_LAYOUT_NO_LIMITS を追加すると、負のマージンが機能しますが、電話のステータスバーの下にレイアウトが描画されます...ヒントはありますか?