2017-11-21 6 views
0

これは本当に簡単なアプリです。このアプリはポートレートモードではポートレイト、エイリアスリソースの助けを借りて横になっているときは横長と言うべきです。エイリアスリソースを使用したランドスケープでのアプリケーションクラッシュ

私が行ったことを段階的に説明します。

  1. 私は、次のコードでのres /値のrefs.xmlファイル作成:私は次のコードでのres /値-地内refs.xmlファイルを作成し

    <resources> 
        <item name = "activity_dualfragment" type="layout">@layout/activity_main</item> 
    </resources> 
    
  2. を。

    <resources> 
        <item name = "activity_dualfragment" type="layout">@layout/activity_main_land</item> 
    </resources> 
    
  3. レイアウトフォルダに「landscape」のテキストでactivity_main_landレイアウトを作成しました。

  4. 最後に、onCreateメソッドのMainActivity.javaにエイリアスリソースを割り当てました。

    setContentView(R.layout.activity_dualfragment);

何が間違っていますか?助けてください。

更新: 大丈夫このエラーは、削除したメインアクティビティのフローティングアイコンが原因でエラーがなくなり、アプリがクラッシュしなくなりました。私はアプリを実行する前に私のデバイスが肖像画になっているとき私はそれが肖像画を表示する肖像画を表示する場合でも、私のデバイスが風景にある場合、私はそれをポートレートにしても風景を示しています。では何が起こっているのですか? @nigam

+0

なぜ私のコードが表示されないのですか?ありがとう@Nigam Patro。 – soche123

+0

どのようにコードを追加しますか? – soche123

+0

リソースタグが削除され、機能しました。 –

答えて

0

大丈夫、私は更新で述べた問題を解決してきました。問題を引き起こしていたマニフェストファイルのこのコード行です。 アンドロイド:configChanges = "keyboardHidden | orientation | screenSize" 私はアプリを削除した後、アプリはエイリアスを使って向きに基づいて異なるレイアウトを表示しています。

0

あなたはアクティビティタグの下にマニフェストファイルに次の行を使用する必要があります。

android:configChanges="keyboardHidden|orientation|screenSize" 

と使用して、現在の画面の向きを取得:

int orientation = this.getResources().getConfiguration().orientation; 

if (orientation == Configuration.ORIENTATION_PORTRAIT) { 
    //code for portrait mode 
    Log.d("Orientation", "ORIENTATION_PORTRAIT"); 
} else { 
    //code for landscape mode 
    Log.d("Orientation", "ORIENTATION_LANDSCAPE"); 
} 
+0

コードが表示されたら、もう一度私の質問を確認してください。エイリアスリソースを使ってレイアウトを変更したい。 – soche123

+0

アップデートを見てください@Shylendra Madda – soche123

0

あなたは両方のために分離レイアウトを作成することができます向き。レイアウトバージョンはAndroidシステムによって自動的に割り当てられます。 TextViewは、方向のバージョンに応じて異なるテキストで配置することができます。

レイアウトファイルは同じ名前である必要がありますが、異なるサブディレクトリに配置する必要があります。あなたは右クリックでのAndroid Studioを使用して、これを作成することができます - >新規 - >新規リソースファイル - >修飾子オリエンテーション下図のように:

enter image description here

+0

リソースエイリアスを使ってレイアウトを変更することはできませんか?私は他の方法があることを知っていますが、私が作成しているプロジェクトにはこのトリックが必要です。 – soche123

+0

更新@Grzegorz – soche123

+0

を見てください残念なことに@ soche123は、私が知っているレイアウトの作成方位バージョンの唯一の確実な方法です。 –

関連する問題