From b3881f856219291e8f54b8166f23c9696cd3fecf Mon Sep 17 00:00:00 2001 From: seven332 Date: Thu, 7 Apr 2016 20:45:20 +0800 Subject: [PATCH] Adjust layout for table --- .../ehviewer/ui/scene/DownloadsScene.java | 22 ++++++++---- .../ehviewer/ui/scene/FavoritesScene.java | 2 +- .../ehviewer/ui/scene/GalleryAdapter.java | 13 ++++--- .../ui/scene/GalleryCommentsScene.java | 2 +- .../ehviewer/ui/scene/GalleryListScene.java | 4 +-- .../hippo/ehviewer/ui/scene/HistoryScene.java | 18 +++++++--- .../hippo/ehviewer/widget/SearchLayout.java | 4 +-- app/src/main/res/layout/item_download.xml | 4 +-- app/src/main/res/layout/item_gallery_list.xml | 4 +-- app/src/main/res/layout/scene_favorites.xml | 6 ++-- .../main/res/layout/scene_gallery_list.xml | 6 ++-- app/src/main/res/values-sw600dp/dimens.xml | 34 +++++++++++++++++++ app/src/main/res/values/dimens.xml | 21 ++++++------ 13 files changed, 94 insertions(+), 46 deletions(-) create mode 100644 app/src/main/res/values-sw600dp/dimens.xml diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java index 85809d4c4..4dbd29085 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java @@ -33,9 +33,9 @@ import android.support.annotation.Nullable; import android.support.design.widget.FloatingActionButton; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AlertDialog; -import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.SimpleItemAnimator; +import android.support.v7.widget.StaggeredGridLayoutManager; import android.support.v7.widget.Toolbar; import android.util.Log; import android.util.SparseBooleanArray; @@ -60,6 +60,7 @@ import com.hippo.app.CheckBoxDialogBuilder; import com.hippo.easyrecyclerview.EasyRecyclerView; import com.hippo.easyrecyclerview.FastScroller; import com.hippo.easyrecyclerview.HandlerDrawable; +import com.hippo.easyrecyclerview.MarginItemDecoration; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.EhDB; import com.hippo.ehviewer.R; @@ -83,6 +84,7 @@ import com.hippo.util.DrawableManager; import com.hippo.view.ViewTransition; import com.hippo.widget.FabLayout; import com.hippo.widget.LoadImageView; +import com.hippo.widget.recyclerview.AutoStaggeredGridLayoutManager; import com.hippo.yorozuya.AssertUtils; import com.hippo.yorozuya.FileUtils; import com.hippo.yorozuya.LongList; @@ -131,7 +133,7 @@ public class DownloadsScene extends ToolbarScene @Nullable private DownloadAdapter mAdapter; @Nullable - private LinearLayoutManager mLayoutManager; + private AutoStaggeredGridLayoutManager mLayoutManager; private ShowcaseView mShowcaseView; @@ -278,6 +280,7 @@ public class DownloadsScene extends ToolbarScene Context context = getContext2(); AssertUtils.assertNotNull(content); + Resources resources = context.getResources(); Drawable drawable = DrawableManager.getDrawable(context, R.drawable.big_download); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); @@ -286,7 +289,9 @@ public class DownloadsScene extends ToolbarScene mAdapter = new DownloadAdapter(); mAdapter.setHasStableIds(true); mRecyclerView.setAdapter(mAdapter); - mLayoutManager = new LinearLayoutManager(context); + mLayoutManager = new AutoStaggeredGridLayoutManager(0, StaggeredGridLayoutManager.VERTICAL); + mLayoutManager.setColumnSize(resources.getDimensionPixelOffset(R.dimen.gallery_list_column_width)); + mLayoutManager.setStrategy(AutoStaggeredGridLayoutManager.STRATEGY_MIN_SIZE); mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.setSelector(RippleSalon.generateRippleDrawable(false)); mRecyclerView.setDrawSelectorOnTop(true); @@ -301,9 +306,12 @@ public class DownloadsScene extends ToolbarScene if (itemAnimator instanceof SimpleItemAnimator) { ((SimpleItemAnimator) itemAnimator).setSupportsChangeAnimations(false); } - int paddingH = context.getResources().getDimensionPixelOffset(R.dimen.list_content_margin_h); - int paddingV = context.getResources().getDimensionPixelOffset(R.dimen.list_content_margin_v); - mRecyclerView.setPadding(paddingV, paddingH, paddingV, paddingH); + int interval = resources.getDimensionPixelOffset(R.dimen.gallery_list_interval); + int paddingH = resources.getDimensionPixelOffset(R.dimen.gallery_list_margin_h); + int paddingV = resources.getDimensionPixelOffset(R.dimen.gallery_list_margin_v); + MarginItemDecoration decoration = new MarginItemDecoration(interval, paddingH, paddingV, paddingH, paddingV); + mRecyclerView.addItemDecoration(decoration); + decoration.applyPaddings(mRecyclerView); if (mInitPosition >= 0) { mRecyclerView.scrollToPosition(mInitPosition); mInitPosition = -1; @@ -351,7 +359,7 @@ public class DownloadsScene extends ToolbarScene guideDownloadLabels(); return; } - int position = mLayoutManager.findFirstCompletelyVisibleItemPosition(); + int position = mLayoutManager.findFirstCompletelyVisibleItemPositions(null)[0]; if (position < 0) { guideDownloadLabels(); return; diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java index 461242516..c9fa38473 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java @@ -244,7 +244,7 @@ public class FavoritesScene extends BaseScene implements Context context = getContext2(); AssertUtils.assertNotNull(context); Resources resources = context.getResources(); - int paddingTopSB = resources.getDimensionPixelOffset(R.dimen.list_padding_top_search_bar); + int paddingTopSB = resources.getDimensionPixelOffset(R.dimen.gallery_padding_top_search_bar); mHelper = new FavoritesHelper(); mHelper.setEmptyString(resources.getString(R.string.gallery_list_empty_hit)); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryAdapter.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryAdapter.java index edc83791c..da72996c7 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryAdapter.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryAdapter.java @@ -39,7 +39,6 @@ import com.hippo.ehviewer.client.EhUtils; import com.hippo.ehviewer.client.data.GalleryInfo; import com.hippo.ehviewer.widget.TileThumb; import com.hippo.util.ApiHelper; -import com.hippo.widget.recyclerview.AutoGridLayoutManager; import com.hippo.widget.recyclerview.AutoStaggeredGridLayoutManager; import java.lang.annotation.Retention; @@ -70,7 +69,7 @@ abstract class GalleryAdapter extends RecyclerView.Adapter { mResources = resources; mRecyclerView = recyclerView; mLayoutManager = new AutoStaggeredGridLayoutManager(0, StaggeredGridLayoutManager.VERTICAL); - mPaddingTopSB = resources.getDimensionPixelOffset(R.dimen.list_padding_top_search_bar); + mPaddingTopSB = resources.getDimensionPixelOffset(R.dimen.gallery_padding_top_search_bar); mRecyclerView.setAdapter(this); mRecyclerView.setLayoutManager(mLayoutManager); @@ -100,14 +99,14 @@ abstract class GalleryAdapter extends RecyclerView.Adapter { case GalleryAdapter.TYPE_LIST: { int columnWidth = mResources.getDimensionPixelOffset(R.dimen.gallery_list_column_width); mLayoutManager.setColumnSize(columnWidth); - mLayoutManager.setStrategy(AutoGridLayoutManager.STRATEGY_MIN_SIZE); + mLayoutManager.setStrategy(AutoStaggeredGridLayoutManager.STRATEGY_MIN_SIZE); if (null != mGirdDecoration) { recyclerView.removeItemDecoration(mGirdDecoration); } if (null == mListDecoration) { - int interval = mResources.getDimensionPixelOffset(R.dimen.list_content_interval); - int paddingH = mResources.getDimensionPixelOffset(R.dimen.list_content_margin_h); - int paddingV = mResources.getDimensionPixelOffset(R.dimen.list_content_margin_v); + int interval = mResources.getDimensionPixelOffset(R.dimen.gallery_list_interval); + int paddingH = mResources.getDimensionPixelOffset(R.dimen.gallery_list_margin_h); + int paddingV = mResources.getDimensionPixelOffset(R.dimen.gallery_list_margin_v); mListDecoration = new MarginItemDecoration(interval, paddingH, paddingV, paddingH, paddingV); } recyclerView.addItemDecoration(mListDecoration); @@ -119,7 +118,7 @@ abstract class GalleryAdapter extends RecyclerView.Adapter { case GalleryAdapter.TYPE_GRID: { int columnWidth = mResources.getDimensionPixelOffset(Settings.getThumbSizeResId()); mLayoutManager.setColumnSize(columnWidth); - mLayoutManager.setStrategy(AutoGridLayoutManager.STRATEGY_SUITABLE_SIZE); + mLayoutManager.setStrategy(AutoStaggeredGridLayoutManager.STRATEGY_SUITABLE_SIZE); if (null != mListDecoration) { recyclerView.removeItemDecoration(mListDecoration); } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java index 5a7edc6de..762120283 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java @@ -187,7 +187,7 @@ public final class GalleryCommentsScene extends ToolbarScene Context context = getContext2(); AssertUtils.assertNotNull(context); Resources resources = context.getResources(); - int paddingBottomFab = resources.getDimensionPixelOffset(R.dimen.list_padding_bottom_fab); + int paddingBottomFab = resources.getDimensionPixelOffset(R.dimen.gallery_padding_bottom_fab); Drawable drawable = DrawableManager.getDrawable(context, R.drawable.big_weird_face); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java index 7c15fccb8..a9049de10 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java @@ -400,8 +400,8 @@ public final class GalleryListScene extends BaseScene mFabLayout = (FabLayout) ViewUtils.$$(mainLayout, R.id.fab_layout); mSearchFab = ViewUtils.$$(mainLayout, R.id.search_fab); - int paddingTopSB = resources.getDimensionPixelOffset(R.dimen.list_padding_top_search_bar); - int paddingBottomFab = resources.getDimensionPixelOffset(R.dimen.list_padding_bottom_fab); + int paddingTopSB = resources.getDimensionPixelOffset(R.dimen.gallery_padding_top_search_bar); + int paddingBottomFab = resources.getDimensionPixelOffset(R.dimen.gallery_padding_bottom_fab); mViewTransition = new ViewTransition(contentLayout, mSearchLayout); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java index 96e21bf48..4f973cb40 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java @@ -25,8 +25,8 @@ import android.os.Build; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AlertDialog; -import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.StaggeredGridLayoutManager; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; @@ -46,6 +46,7 @@ import com.h6ah4i.android.widget.advrecyclerview.utils.AbstractSwipeableItemView import com.hippo.easyrecyclerview.EasyRecyclerView; import com.hippo.easyrecyclerview.FastScroller; import com.hippo.easyrecyclerview.HandlerDrawable; +import com.hippo.easyrecyclerview.MarginItemDecoration; import com.hippo.ehviewer.EhDB; import com.hippo.ehviewer.R; import com.hippo.ehviewer.client.EhCacheKeyFactory; @@ -62,6 +63,7 @@ import com.hippo.util.ApiHelper; import com.hippo.util.DrawableManager; import com.hippo.view.ViewTransition; import com.hippo.widget.LoadImageView; +import com.hippo.widget.recyclerview.AutoStaggeredGridLayoutManager; import com.hippo.yorozuya.AssertUtils; import com.hippo.yorozuya.ResourcesUtils; import com.hippo.yorozuya.ViewUtils; @@ -119,7 +121,10 @@ public class HistoryScene extends ToolbarScene final GeneralItemAnimator animator = new SwipeDismissItemAnimator(); animator.setSupportsChangeAnimations(false); mRecyclerView.setItemAnimator(animator); - LinearLayoutManager layoutManager = new LinearLayoutManager(context); + AutoStaggeredGridLayoutManager layoutManager = new AutoStaggeredGridLayoutManager( + 0, StaggeredGridLayoutManager.VERTICAL); + layoutManager.setColumnSize(resources.getDimensionPixelOffset(R.dimen.gallery_list_column_width)); + layoutManager.setStrategy(AutoStaggeredGridLayoutManager.STRATEGY_MIN_SIZE); mRecyclerView.setLayoutManager(layoutManager); mRecyclerView.setSelector(RippleSalon.generateRippleDrawable(false)); mRecyclerView.setDrawSelectorOnTop(true); @@ -127,9 +132,12 @@ public class HistoryScene extends ToolbarScene mRecyclerView.setClipToPadding(false); mRecyclerView.setOnItemClickListener(this); mRecyclerView.setOnItemLongClickListener(this); - int paddingH = resources.getDimensionPixelOffset(R.dimen.list_content_margin_h); - int paddingV = resources.getDimensionPixelOffset(R.dimen.list_content_margin_v); - mRecyclerView.setPadding(paddingV, paddingH, paddingV, paddingH); + int interval = resources.getDimensionPixelOffset(R.dimen.gallery_list_interval); + int paddingH = resources.getDimensionPixelOffset(R.dimen.gallery_list_margin_h); + int paddingV = resources.getDimensionPixelOffset(R.dimen.gallery_list_margin_v); + MarginItemDecoration decoration = new MarginItemDecoration(interval, paddingH, paddingV, paddingH, paddingV); + mRecyclerView.addItemDecoration(decoration); + decoration.applyPaddings(mRecyclerView); guardManager.attachRecyclerView(mRecyclerView); swipeManager.attachRecyclerView(mRecyclerView); diff --git a/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java b/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java index 6e3010cea..40d5429bc 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java @@ -122,8 +122,8 @@ public class SearchLayout extends EasyRecyclerView implements CompoundButton.OnC setAdapter(mAdapter); setHasFixedSize(true); setClipToPadding(false); - int paddingH = resources.getDimensionPixelOffset(R.dimen.list_content_margin_h); - int paddingV = resources.getDimensionPixelOffset(R.dimen.list_content_margin_v); + int paddingH = resources.getDimensionPixelOffset(R.dimen.gallery_list_margin_h); + int paddingV = resources.getDimensionPixelOffset(R.dimen.gallery_list_margin_v); setPadding(paddingV, paddingH, paddingV, paddingH); // Create normal view diff --git a/app/src/main/res/layout/item_download.xml b/app/src/main/res/layout/item_download.xml index 3004c06b3..efb719637 100644 --- a/app/src/main/res/layout/item_download.xml +++ b/app/src/main/res/layout/item_download.xml @@ -24,8 +24,8 @@ + android:layout_width="@dimen/gallery_list_thumb_width" + android:layout_height="@dimen/gallery_list_thumb_height"/> + android:layout_marginLeft="@dimen/gallery_search_bar_margin_h" + android:layout_marginRight="@dimen/gallery_search_bar_margin_h" + android:layout_marginTop="@dimen/gallery_search_bar_margin_v"/> + android:layout_marginLeft="@dimen/gallery_search_bar_margin_h" + android:layout_marginRight="@dimen/gallery_search_bar_margin_h" + android:layout_marginTop="@dimen/gallery_search_bar_margin_v"/> + + + + + 24dp + 360dp + + 4dp + 20dp + 4dp + 8dp + 24dp + 8dp + + 20dp + 16dp + 72dp + + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 5a0fef6ba..52d6a5b8b 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -17,9 +17,7 @@ 16dp - 260dp - 280dp 18dp @@ -37,19 +35,20 @@ 16dp 1dp - 120dp - 80dp - 4dp - 4dp - 0dp - 4dp - 64dp - 80dp - + 120dp + 80dp + 0dp + 4dp + 4dp 8dp 8dp 8dp + 4dp + 8dp + 64dp + 80dp + 320dp 160dp 120dp