0

私は小さな問題に直面しています。私のアプリケーションでは、カスタムビューを使用してレイアウトにビジュアライザーを表示しているオーディオストリーミングアプリの縦向きと横向きのビューを使用しようとしています。1つはレイアウトで、もう1つはレイアウトランドの2つのフォルダーを作成しました。同じ名前でxmlをそこに入れましたが、サイズ、幅のコードを変更しました。

また、「android:configChanges="orientation|keyboardHidden" を追加しましたが、ハンドセットを回転させると、向きが横向きに変更されますが、xml はデフォルト レイアウトからのみ表示されます。横向きモードを表示するのに layout-land xml は必要ありません。 .

カスタムビューを使用してランドとポートxmlの両方にビジュアライザーを表示しているため、メディアプレーヤーオブジェクトがXMLに接続され、方向を変更するとメディアプレーヤーオブジェクトが再作成され、音楽の再生が開始されます

4

2 に答える 2

2

developer.android.com を参照してください。

android:configChanges アクティビティがそれ自体で処理する構成変更を一覧表示します。実行時に構成の変更が発生すると、アクティビティはデフォルトでシャットダウンされて再開されますが、この属性を使用して構成を宣言すると、アクティビティが再開されなくなります。代わりに、アクティビティは実行されたままになり、その onConfigurationChanged() メソッドが呼び出されます。

android:configChanges="orientation" を指定したため、アクティビティ自体が onConfigurationChanged() からの向きの変更を処理することを意味します。

マニフェストから android:configChanges を削除します。あなたの問題は解決されます。

于 2013-02-01T14:48:10.490 に答える
0

あなたが書くとき、

android:configChanges="orientation|keyboardHidden"

アクティビティは再作成されないため、layout-land フォルダーから xml をロードしません。layout-land フォルダーから xml をロードする場合は、オーバーライドを手動で変更し、構成のonConfigurationChanged()変更を自分で処理する必要があります。私の答えをチェックしてくださいhere

于 2013-02-01T14:47:40.707 に答える