Skip to content

Commit

Permalink
Android fix scroll on landscape orientation (#695)
Browse files Browse the repository at this point in the history
^ALTAPPS-980
  • Loading branch information
XanderZhu authored Oct 6, 2023
1 parent a612930 commit cd61057
Show file tree
Hide file tree
Showing 4 changed files with 231 additions and 206 deletions.
158 changes: 83 additions & 75 deletions androidHyperskillApp/src/main/res/layout-night/fragment_onboarding.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,92 +5,100 @@
android:layout_width="match_parent"
android:layout_height="match_parent">

<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/onboardingContent"
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp">
android:id="@+id/onboardingContent"
android:fillViewport="true">

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp">

<ImageView
android:id="@+id/onboardingSplashLogoImageView"
android:layout_width="@dimen/onboarding_splash_icon_width"
android:layout_height="@dimen/onboarding_splash_icon_height"
android:src="@drawable/ic_splash_icon"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:importantForAccessibility="no"/>

<ImageView
android:id="@+id/onboardingSplashLogoImageView"
android:layout_width="@dimen/onboarding_splash_icon_width"
android:layout_height="@dimen/onboarding_splash_icon_height"
android:src="@drawable/ic_splash_icon"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/onboardingWelcomeTextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Body2"
android:textSize="34sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/onboardingSplashLogoImageView"
app:layout_constraintWidth_max="@dimen/auth_button_max_width"
android:text="@string/onboarding_title" />

<TextView
android:id="@+id/onboardingWelcomeTextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Body2"
android:textSize="34sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/onboardingSplashLogoImageView"
app:layout_constraintWidth_max="@dimen/auth_button_max_width"
android:text="@string/onboarding_title" />
<TextView
android:id="@+id/onboardingDescriptionTextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/onboardingWelcomeTextView"
app:layout_constraintWidth_max="@dimen/auth_button_max_width"
android:text="@string/onboarding_text" />

<TextView
android:id="@+id/onboardingDescriptionTextView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/onboardingWelcomeTextView"
app:layout_constraintWidth_max="@dimen/auth_button_max_width"
android:text="@string/onboarding_text" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/onboarding_problem_of_the_day_pic"
app:layout_constraintBottom_toTopOf="@+id/onboardingSignInButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/onboardingDescriptionTextView" />

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/onboarding_problem_of_the_day_pic"
app:layout_constraintBottom_toTopOf="@+id/onboardingSignInButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/onboardingDescriptionTextView" />
<com.google.android.material.button.MaterialButton
android:id="@+id/onboardingSignInButton"
android:layout_width="0dp"
android:layout_height="@dimen/auth_button_height"
android:layout_marginTop="24dp"
android:layout_marginBottom="20dp"
android:insetTop="0dp"
android:insetBottom="0dp"
android:maxWidth="@dimen/auth_button_max_width"
app:layout_constraintBottom_toTopOf="@+id/onboardingSignUpButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintWidth_max="@dimen/auth_button_max_width"
app:strokeColor="?colorPrimary"
android:text="@string/onboarding_sign_in" />

<com.google.android.material.button.MaterialButton
android:id="@+id/onboardingSignInButton"
android:layout_width="0dp"
android:layout_height="@dimen/auth_button_height"
android:layout_marginTop="24dp"
android:layout_marginBottom="20dp"
android:insetTop="0dp"
android:insetBottom="0dp"
android:maxWidth="@dimen/auth_button_max_width"
app:layout_constraintBottom_toTopOf="@+id/onboardingSignUpButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintWidth_max="@dimen/auth_button_max_width"
app:strokeColor="?colorPrimary"
android:text="@string/onboarding_sign_in" />

<com.google.android.material.button.MaterialButton
android:id="@+id/onboardingSignUpButton"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="0dp"
android:layout_height="@dimen/auth_button_height"
android:insetTop="0dp"
android:insetBottom="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintVertical_bias="0"
app:layout_constraintWidth_max="@dimen/auth_button_max_width"
app:strokeColor="?colorPrimary"
android:text="@string/onboarding_sign_up" />

<com.google.android.material.button.MaterialButton
android:id="@+id/onboardingSignUpButton"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="0dp"
android:layout_height="@dimen/auth_button_height"
android:insetTop="0dp"
android:insetBottom="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintVertical_bias="0"
app:layout_constraintWidth_max="@dimen/auth_button_max_width"
app:strokeColor="?colorPrimary"
android:text="@string/onboarding_sign_up" />

</androidx.constraintlayout.widget.ConstraintLayout>

</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>

<me.zhanghai.android.materialprogressbar.MaterialProgressBar
android:id="@+id/onboardingProgressBar"
Expand Down
117 changes: 63 additions & 54 deletions androidHyperskillApp/src/main/res/layout/fragment_auth_social.xml
Original file line number Diff line number Diff line change
@@ -1,64 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.core.widget.NestedScrollView
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/authSocialFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:background="@color/color_background"
android:orientation="vertical">
android:fillViewport="true"
>

<ImageView
android:id="@+id/signInHyperskillLogoShapeableImageView"
android:layout_width="@dimen/auth_hyperskill_logo_width"
android:layout_height="@dimen/auth_hyperskill_logo_height"
android:layout_marginTop="48dp"
android:src="@drawable/branded_logo"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@color/color_background"
android:orientation="vertical">

<TextView
android:id="@+id/signInToTextView"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginTop="20dp"
tools:text="@string/auth_log_in_title"
android:textAlignment="center"
android:textAppearance="?textAppearanceBody1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/signInHyperskillLogoShapeableImageView" />
<ImageView
android:id="@+id/signInHyperskillLogoShapeableImageView"
android:layout_width="@dimen/auth_hyperskill_logo_width"
android:layout_height="@dimen/auth_hyperskill_logo_height"
android:layout_marginTop="48dp"
android:src="@drawable/branded_logo"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:importantForAccessibility="no"/>

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/authButtonsRecyclerView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:layout_marginTop="48dp"
android:overScrollMode="never"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/signInToTextView"
app:layout_constraintWidth_max="@dimen/auth_button_max_width"
tools:itemCount="4"
tools:listitem="@layout/item_auth_material_card_view" />
<TextView
android:id="@+id/signInToTextView"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginTop="20dp"
tools:text="@string/auth_log_in_title"
android:textAlignment="center"
android:textAppearance="?textAppearanceBody1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/signInHyperskillLogoShapeableImageView" />

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/authButtonsRecyclerView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:layout_marginTop="48dp"
android:overScrollMode="never"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/signInToTextView"
app:layout_constraintWidth_max="@dimen/auth_button_max_width"
tools:itemCount="4"
tools:listitem="@layout/item_auth_material_card_view" />

<com.google.android.material.button.MaterialButton
android:id="@+id/signInWithEmailMaterialButton"
style="@style/Widget.MaterialComponents.Button.TextButton"
android:layout_width="0dp"
android:layout_height="@dimen/auth_button_height"
android:layout_marginHorizontal="20dp"
android:layout_marginTop="16dp"
android:insetTop="0dp"
android:insetBottom="0dp"
android:text="@string/auth_email_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/authButtonsRecyclerView"
app:layout_constraintWidth_max="@dimen/auth_button_max_width"
app:strokeColor="?colorPrimary" />

<com.google.android.material.button.MaterialButton
android:id="@+id/signInWithEmailMaterialButton"
style="@style/Widget.MaterialComponents.Button.TextButton"
android:layout_width="0dp"
android:layout_height="@dimen/auth_button_height"
android:layout_marginHorizontal="20dp"
android:layout_marginTop="16dp"
android:insetTop="0dp"
android:insetBottom="0dp"
android:text="@string/auth_email_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/authButtonsRecyclerView"
app:layout_constraintWidth_max="@dimen/auth_button_max_width"
app:strokeColor="?colorPrimary" />
</androidx.constraintlayout.widget.ConstraintLayout>

</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>
Loading

0 comments on commit cd61057

Please sign in to comment.