2016-12-22 3 views
0

Я пытаюсь сделать работу входа в приложение для Android. Приложение работает нормально в режиме Potrait, но в ландшафтном режиме пользовательский интерфейс не может полностью размещаться, и поэтому часть пользовательского интерфейса не отображается. Я сослался на все связанные вопросы SO, но ни один из них не помог.
Device- Motorola X Стиль Зефир
Невозможно сделать UI прокручиваемый

Код для activity_login.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".SignupActivity" 
    android:scrollbars="vertical"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/MyMaterialTheme.AppBarOverlay"> 

     <include android:layout_height="wrap_content" 
      android:layout_width="match_parent" 
      layout="@layout/toolbar" /> 

    </android.support.design.widget.AppBarLayout> 

    <include layout="@layout/content_login" /> 
</android.support.design.widget.CoordinatorLayout> 

Код для content_login.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:background="#1E1E24" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context=".SignupActivity" 
    tools:showIn="@layout/activity_login"> 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:id="@+id/first" 
     android:textColor="@color/primary_text_default_material_dark" 
     android:textSize="@dimen/title_font" 
     android:textStyle="bold" 
     android:layout_marginBottom="@dimen/padding_10" 
     android:text="Login Activity" 
     /> 

    <View 
     android:id="@+id/second" 
     android:layout_width="match_parent" 
     android:layout_below="@id/first" 
     android:layout_height="@dimen/contacting_post_staff_view_width" 
     android:background="@color/photo_border"/> 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:id="@+id/third" 
     android:layout_below="@id/second" 
     android:textColor="@color/primary_text_default_material_dark" 
     android:textSize="@dimen/sub_title_font" 
     android:textStyle="bold" 
     android:layout_marginTop="@dimen/padding_10" 
     android:text="Hey ! This is a sample App for Login Activity" 
     /> 


    <LinearLayout 
     android:layout_marginTop="@dimen/fragment_main_marginTop_35" 
     android:layout_width="match_parent" 
     android:orientation="vertical" 
     android:gravity="center" 
     android:layout_below="@id/third" 
     android:layout_height="wrap_content"> 
     <EditText 
      android:background="@drawable/edit_text_bg" 
      android:layout_width="match_parent" 
      android:layout_marginTop="@dimen/contacting_post_staff_marginTop_15" 
      android:layout_height="wrap_content" 
      android:id="@+id/edit_name" 
      android:hint="@string/enter_name" 
      android:inputType="textPersonName|textCapWords" /> 

     <Spinner 
      android:id="@+id/spinner_country" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:dropDownWidth="@dimen/contacting_post_staff_spinner_width" 
      android:layout_marginTop="@dimen/contacting_post_staff_marginTop_15" /> 
     <Button 
      android:id="@+id/loginButton" 
      style="@style/NavigateButton" 
      android:text="@string/login" 
      android:layout_marginTop="@dimen/fragment_main_marginTop_35"/> 

    </LinearLayout> 



</RelativeLayout> 

Код для toolbar.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" android:layout_height="wrap_content" 
    android:id="@+id/toolbar" 
    android:background="@color/background_textview" 
    android:minHeight="?attr/actionBarSize" 
    android:fitsSystemWindows="true" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    > 
</android.support.v7.widget.Toolbar> 

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

То, что я пытался -

1. Я попытался положить ниже в Scrollview

включают макет = "@ макет/content_login" />

2 Я попытался положить сверху внутри Linear Layout, а затем Linear layout внутри Scrollview.

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

ответ

0

попробуйте сделать корневой элемент content_login.xml как scrollview. Вы можете иметь вложенные макеты с текущим относительным расположением в новом прокрутке.

В качестве альтернативы вы можете зафиксировать ориентацию активности на портрете с помощью андроида: screenOrientation = «портрет» под тегом активности в AndroidManifest.xml, если это не проблема.

Кроме того, рассмотрите возможность использования ConstraintLayout, это устраняет проблему взаимодействия с вложенными макетами.

+0

Спасибо большое !! Ваш первый метод работал с некоторыми незначительными изменениями. –

+0

рад помочь! – sats

0
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".SignupActivity"> 

<ScrollView 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintRight_toRightOf="parent" 
    app:layout_constraintLeft_toLeftOf="parent"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     tools:context=".SignupActivity" 
     android:orientation="vertical" 
     tools:showIn="@layout/activity_login"> 

     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:id="@+id/first" 
      android:textColor="@color/primary_text_default_material_dark" 
      android:textSize="@dimen/title_font" 
      android:textStyle="bold" 
      android:layout_marginBottom="@dimen/padding_10" 
      android:text="Login Activity" 
      /> 

     <View 
      android:id="@+id/second" 
      android:layout_width="match_parent" 
      android:layout_below="@id/first" 
      android:layout_height="@dimen/contacting_post_staff_view_width" 
      android:background="@color/photo_border"/> 

     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:id="@+id/third" 
      android:layout_below="@id/second" 
      android:textColor="@color/primary_text_default_material_dark" 
      android:textSize="@dimen/sub_title_font" 
      android:textStyle="bold" 
      android:layout_marginTop="@dimen/padding_10" 
      android:text="Hey ! This is a sample App for Login Activity" 
      /> 


     <LinearLayout 
      android:layout_marginTop="@dimen/fragment_main_marginTop_35" 
      android:layout_width="match_parent" 
      android:orientation="vertical" 
      android:gravity="center" 
      android:layout_below="@id/third" 
      android:layout_height="wrap_content"> 
      <EditText 
       android:background="@drawable/edit_text_bg" 
       android:layout_width="match_parent" 
       android:layout_marginTop="@dimen/contacting_post_staff_marginTop_15" 
       android:layout_height="wrap_content" 
       android:id="@+id/edit_name" 
       android:hint="@string/enter_name" 
       android:inputType="textPersonName|textCapWords" /> 

      <Spinner 
       android:id="@+id/spinner_country" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:dropDownWidth="@dimen/contacting_post_staff_spinner_width" 
       android:layout_marginTop="@dimen/contacting_post_staff_marginTop_15" /> 
      <Button 
       android:id="@+id/loginButton" 
       style="@style/NavigateButton" 
       android:text="@string/login" 
       android:layout_marginTop="@dimen/fragment_main_marginTop_35"/> 
     </LinearLayout> 
    </LinearLayout> 
</ScrollView> 

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