diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java
index 49287ed94..920f73f21 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java
@@ -87,6 +87,7 @@ import com.hippo.util.ActivityHelper;
import com.hippo.util.ApiHelper;
import com.hippo.util.DrawableManager;
import com.hippo.util.ExceptionUtils;
+import com.hippo.util.LayoutUtils2;
import com.hippo.util.ReadableTime;
import com.hippo.view.ViewTransition;
import com.hippo.widget.AutoWrapLayout;
@@ -852,6 +853,10 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
mPreviewText.setText(R.string.more_previews);
}
+ int minWidth = getResources().getDimensionPixelOffset(R.dimen.preview_grid_min_width);
+ int spanCount = LayoutUtils2.calculateSpanCount(getContext(), minWidth);
+ mGridLayout.setColumnCount(spanCount);
+
LayoutInflater inflater = getActivity().getLayoutInflater();
for (int i = 0, size = previewSet.size(); i < size; i++) {
View view = inflater.inflate(R.layout.item_gallery_preview, mGridLayout, false);
diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java
index f8ad7697f..44c506df3 100644
--- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java
+++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewsScene.java
@@ -49,6 +49,7 @@ import com.hippo.ehviewer.client.exception.EhException;
import com.hippo.ehviewer.ui.GalleryActivity;
import com.hippo.scene.SceneFragment;
import com.hippo.scene.StageActivity;
+import com.hippo.util.LayoutUtils2;
import com.hippo.widget.ContentLayout;
import com.hippo.widget.LoadImageView;
import com.hippo.widget.Slider;
@@ -125,7 +126,9 @@ public class GalleryPreviewsScene extends ToolbarScene implements EasyRecyclerVi
mAdapter = new GalleryPreviewAdapter();
recyclerView.setAdapter(mAdapter);
- recyclerView.setLayoutManager(new GridLayoutManager(getContext(), 3)); // TODO hardcode
+ int minWidth = getResources().getDimensionPixelOffset(R.dimen.preview_grid_min_width);
+ int spanCount = LayoutUtils2.calculateSpanCount(getContext(), minWidth);
+ recyclerView.setLayoutManager(new GridLayoutManager(getContext(), spanCount));
int padding = LayoutUtils.dp2pix(getContext(), 4);
recyclerView.setPadding(padding, padding, padding, padding);
recyclerView.setClipToPadding(false);
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index b2b88fc05..78df4a5df 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -47,6 +47,7 @@
320dp
120dp
+ 120dp
24dp