2016-12-05 4 views
0

Я относительно новый андроид, и я создал довольно сложную схему (с AndroidStudio 2.1.3, перечислен ниже), который отлично работает в следующих случаях:Как исправить проблемы с ландшафтным дизайном в Android?

  • На реальном телефоне в портретном режиме (LG G3).
  • В AndroidStudio для портретного режима
  • В AndroidStudio ландшафтного режиме

Однако, когда я повернуть реальный телефон на 90 градусов (режим ландшафта реального телефона), расположение неправильно и выглядит следующим образом :

enter image description here

в то время как ожидаемый макет (как показано на AndroidStudio) является следующим:

enter image description here

Когда я нажимаю клавишу «возврата» по телефону, я вижу ожидаемый макет, но как только я собираюсь вводить данные в любом из полей, расположение становится некорректным.

Как исправить макет для реального телефона?

См the layout here и здесь Manifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.alexander.inputlayoutscroll"> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:windowSoftInputMode="stateVisible|adjustResize" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

Вы должны иметь все свое представление в линейной или относительной группе просмотра и поместить эту группу представлений в виде прокрутки, чтобы вы могли видеть все виды с помощью прокрутки, когда клавиатура отображается вверх –

+0

вы также хотите запустить приложение на портрете Ландшафтный режим ? если вы хотите только портретный режим, чем просто положить андроида: screenOrientation = «портрет» в файле манифеста внутри activtity тега Как <деятельность андроид: имя = «fffffffffffffffffffffffffff» андроид: метка = «@ строка/app_name» андроид: screenOrientation = "portrait"> –

+0

@sushantgosavi: Я попробовал ваше предложение, но я не вижу изменений в поведении приложения. – Alex

ответ

1

Есть несколько способов сделать это:

Вы можете добавить этот кусок кода в ваших EditText взглядов.

android:imeOptions="flagNoExtractUi" 

ИЛИ

android:imeOptions="flagNoFullscreen" 

Это предотвратит мягкую клавиатуру от выскакивают в полном экране редактирования. Иногда первый вариант не работает.

Ещё вы можете добавить этот код в свою деятельность в файле Manifest.xml.

android:windowSoftInputMode="adjustPan" 

Об этом можно узнать подробнее here.

+0

Похоже, первое предложение действительно помогает решить проблему. Макет выглядит все равно, как дерьмо, но теперь это для меня, чтобы решить ... – Alex

+0

@Alex Ну, рад помочь. Разумеется, макет теперь вам изменить. – AlphaQ

Смежные вопросы