From 89231c99f64ce1b8d20b5ad1fa69f355ff8fe525 Mon Sep 17 00:00:00 2001 From: johan12345 Date: Mon, 1 Jun 2026 19:17:14 +0200 Subject: [PATCH] Improve DataSourceSelectFragment UI Tablet layout: scroll down automatically to reveal "Let's go" button --- .../net/vonforst/evmap/fragment/OnboardingFragment.kt | 9 ++++----- .../layout-land/fragment_onboarding_data_source.xml | 1 + .../layout-sw720dp/fragment_onboarding_data_source.xml | 10 +++++++--- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/net/vonforst/evmap/fragment/OnboardingFragment.kt b/app/src/main/java/net/vonforst/evmap/fragment/OnboardingFragment.kt index 686c23a7..ba0f6540 100644 --- a/app/src/main/java/net/vonforst/evmap/fragment/OnboardingFragment.kt +++ b/app/src/main/java/net/vonforst/evmap/fragment/OnboardingFragment.kt @@ -6,17 +6,14 @@ import android.annotation.SuppressLint import android.content.Context import android.graphics.drawable.AnimatedVectorDrawable import android.os.Bundle -import android.text.SpannableString -import android.text.SpannableStringBuilder -import android.text.style.URLSpan import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.animation.DecelerateInterpolator import android.widget.ImageView +import android.widget.ScrollView import androidx.core.content.ContextCompat import androidx.core.text.HtmlCompat -import androidx.core.text.getSpans import androidx.core.text.method.LinkMovementMethodCompat import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController @@ -31,7 +28,6 @@ import net.vonforst.evmap.databinding.FragmentOnboardingWelcomeBinding import net.vonforst.evmap.model.FILTERS_DISABLED import net.vonforst.evmap.navigation.safeNavigate import net.vonforst.evmap.storage.PreferenceDataSource -import net.vonforst.evmap.ui.CustomUrlSpan import net.vonforst.evmap.ui.replaceUrlSpansWithCustom import net.vonforst.evmap.waitForLayout @@ -267,6 +263,9 @@ class DataSourceSelectFragment : OnboardingPageFragment() { ObjectAnimator.ofFloat(binding.btnGetStarted, "alpha", 0f, 1f).apply { interpolator = DecelerateInterpolator() }.start() + (binding.root as? ScrollView)?.let { + it.smoothScrollBy(0, it.height) + } } } } diff --git a/app/src/main/res/layout-land/fragment_onboarding_data_source.xml b/app/src/main/res/layout-land/fragment_onboarding_data_source.xml index 7e1e67ac..e9dfe5f2 100644 --- a/app/src/main/res/layout-land/fragment_onboarding_data_source.xml +++ b/app/src/main/res/layout-land/fragment_onboarding_data_source.xml @@ -12,6 +12,7 @@ android:layout_marginStart="24dp" android:layout_marginTop="16dp" android:layout_marginBottom="16dp" + android:requiresFadingEdge="vertical" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/welcomeTitle" app:layout_constraintHorizontal_bias="0.5" diff --git a/app/src/main/res/layout-sw720dp/fragment_onboarding_data_source.xml b/app/src/main/res/layout-sw720dp/fragment_onboarding_data_source.xml index 5500cefb..ffe357bf 100644 --- a/app/src/main/res/layout-sw720dp/fragment_onboarding_data_source.xml +++ b/app/src/main/res/layout-sw720dp/fragment_onboarding_data_source.xml @@ -4,7 +4,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" xmlns:tools="http://schemas.android.com/tools" - android:fillViewport="true"> + android:fillViewport="true" + android:requiresFadingEdge="vertical"> + app:layout_constraintVertical_bias="1.0" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" />