1

タブレットで風景と肖像画を許可したいのですが、携帯電話でのみ肖像画を許可します。 That question has already been asked,しかし、私は提案されている解決策のいずれかのバグに直面しています。アクティビティが間違った代替リソースを受け取る

私は様々な次元を持っていますdefined depending on the height of the device(h500dp、h400dpなど)。私の携帯電話(縦411dp、縦731dpの高さ)をにすると、の風景になり、その後というアクティビティが表示されても、のh400dpが表示されます。あたかも私の現在の携帯電話の向き(風景)によって高さが評価されたかのように。アプリを起動する前に携帯電話をポートレートで使用している場合は、h500dpの数字が表示されますが、これは正しいものです。

私が使用しているコードはthis answerのものです。関連するコードは、活動onCreateである:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    if (!isTablet()) { 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    } 
} 

マニフェスト:

<activity 
     android:name=".login.LoginActivity" 
     android:configChanges="keyboardHidden|orientation|screenSize" 
     android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
+0

ランドスケープを作成 – nzala

+0

@nzala本当の問題は、アプリケーションがランドスケープにあるかのようにリソースを取り込むことです。だから私がランドスケープレイアウトを定義するなら、それはh400dpの次元でそれと同じようにそれを取るでしょう。 – RominaV

+0

このアクティビティのマニフェストを共有できますか – Mahesh

答えて

0
<activity 
      android:name=".MainActivity" 
      android:label="" 
      android:screenOrientation="portrait" 
      android:theme="@style/AppTheme.NoActionBar"> 

あなたが大でしばらく含めた景観のための特別なレイアウトを提供したい場合は https://developer.android.com/training/basics/supporting-devices/screens.html

を参照してください。大画面と大画面の両方の修飾子を使用する必要があります。

MyProject/ 
    res/ 
     layout/    # default (portrait) 
      main.xml 
     layout-land/   # landscape 
      main.xml 
     layout-large/  # large (portrait) 
      main.xml 
     layout-large-land/ # large landscape 
      main.xml 

/

画面サイズを使用するデバイスのタイプを決定します。参照可能this post

2番目の手順では、setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);を使用して画面の向きを変更できます。別の投稿hereがあります。

0

Orientation変化に更新されてからレイアウトが制限されますandroid:configChanges="keyboardHidden|orientation|screenSize"

を設定Activity

AndroidManifest.xmlから設定の変更を削除してください。

関連する問題