diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java
index 8aef78688..08d52eadd 100644
--- a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java
+++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java
@@ -61,6 +61,7 @@ import org.joinmastodon.android.ui.utils.DiscoverInfoBannerHelper;
import org.joinmastodon.android.ui.viewcontrollers.HomeTimelineMenuController;
import org.joinmastodon.android.ui.viewcontrollers.ToolbarDropdownMenuController;
import org.joinmastodon.android.ui.views.FixedAspectRatioImageView;
+import org.joinmastodon.android.ui.views.NestedRecyclerScrollView;
import org.joinmastodon.android.ui.views.NewPostsButtonContainer;
import org.joinmastodon.android.updater.GithubSelfUpdater;
import org.parceler.Parcels;
@@ -109,6 +110,7 @@ public class HomeTimelineFragment extends StatusListFragment implements ToolbarD
private BottomSheet donationSheet;
public HomeTimelineFragment(){
+ setLayout(R.layout.fragment_loader_hiding_toolbar);
setListLayoutId(R.layout.fragment_timeline);
}
@@ -279,6 +281,21 @@ public class HomeTimelineFragment extends StatusListFragment implements ToolbarD
}
}
});
+ View bottomOverlays=view.findViewById(R.id.bottom_overlays);
+ NestedRecyclerScrollView scroller=view.findViewById(R.id.scroller);
+ scroller.setScrollableChildSupplier(()->list);
+ scroller.setTakePriorityOverChildViews(true);
+ scroller.setOnScrollChangeListener((v, scrollX, scrollY, oldScrollX, oldScrollY)->{
+ bottomOverlays.setTranslationY(scrollY-getToolbar().getHeight());
+ });
+ scroller.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener(){
+ @Override
+ public boolean onPreDraw(){
+ scroller.getViewTreeObserver().removeOnPreDrawListener(this);
+ bottomOverlays.setTranslationY(scroller.getScrollY()-getToolbar().getHeight());
+ return true;
+ }
+ });
if(GithubSelfUpdater.needSelfUpdating()){
updateUpdateState(GithubSelfUpdater.getInstance().getState());
diff --git a/mastodon/src/main/res/layout/fragment_loader_hiding_toolbar.xml b/mastodon/src/main/res/layout/fragment_loader_hiding_toolbar.xml
new file mode 100644
index 000000000..96e05f993
--- /dev/null
+++ b/mastodon/src/main/res/layout/fragment_loader_hiding_toolbar.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mastodon/src/main/res/layout/fragment_timeline.xml b/mastodon/src/main/res/layout/fragment_timeline.xml
index 8f44ecec4..e2f3692aa 100644
--- a/mastodon/src/main/res/layout/fragment_timeline.xml
+++ b/mastodon/src/main/res/layout/fragment_timeline.xml
@@ -20,19 +20,31 @@
android:layout_height="match_parent"
android:id="@+id/empty"/>
-
+
+
+
+
+
-
-
\ No newline at end of file