2016-10-17 6 views
0

アプリをランドスケープモードで起動すると、ランドスケープリストの項目xmlが使用されます。ポートレートモードで起動して横長モードにすると、両方の設定でポートレートリスト項目xmlが使用されます。私はオリエンテーションの変更を検出するためにonConfigurationChangedを使用していますが、正しいxmlファイルを使用するように指示する方法がわかりません。私は同じ名前の2つのxmlファイルを持っていますが、1つはランドスケープです。ありがとう。Android:向きを変更するときにリストビューの項目レイアウトを変更しますか?

答えて

0

あなたがこれを達成しようとする場合は、あなたのレイアウト1が

layout-land/* 

layout-port/* 

名と呼ばれるべきレイアウトに同じ

File.xml 

2フォルダを持つべきですそれらを膨らませるだけでなく、OSは安心して世話をします。 のAndroidManifest.xmlでconfigChangesは= "方向":

はまた、この Android layout folders: layout, layout-port, layout-land

指定されたアンドロイドを参照してください。その場合には、単に適切に膨らませるより) onConfigurationChanged(再びsetContentView()を指定する)、またはあなたの希望だけで(onconfigurationchanged使用し続ける場合、そのAndroidManifest.xmlを ディレクティブ

を削除します。

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
super.onConfigurationChanged(newConfig); 

// Checks the orientation of the screen 
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
    Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); 
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
    Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); 
} 
} 
+0

okありがとうございました。私は2つの異なるフォルダを指定しましたが、2つの異なるフォルダを見るために、ファインダ内のレイアウトフォルダを開く必要がありました。次に、アンドロイド:configChanges = "オリエンテーション| screenSize | keyboardHidden"をマニフェストファイルから削除する必要がありました – mjpablo23

+0

Androidスタジオを使用している場合、左上隅のビューを切り替えることができます。同じresフォルダ。 – skryshtafovych

+0

OK、ありがとう – mjpablo23

関連する問題