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 ae4698e9b..a2f3a69e7 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 @@ -169,7 +169,7 @@ public class GalleryListScene extends Scene implements SearchBar.Helper, // When scene start if (savedInstanceState == null) { - mGalleryListHelper.refresh(); + mGalleryListHelper.firstRefresh(); } } diff --git a/app/src/main/java/com/hippo/ehviewer/widget/ContentLayout.java b/app/src/main/java/com/hippo/ehviewer/widget/ContentLayout.java index 7a6b986b7..09c6cd32a 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/ContentLayout.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/ContentLayout.java @@ -25,11 +25,11 @@ import android.widget.FrameLayout; import android.widget.ProgressBar; import android.widget.TextView; +import com.hippo.effect.ViewTransition; import com.hippo.ehviewer.R; import com.hippo.util.IntIdGenerator; import com.hippo.util.LayoutManagerUtils; import com.hippo.util.UiUtils; -import com.hippo.util.ViewUtils; import com.hippo.widget.Snackbar; import com.hippo.widget.recyclerview.EasyRecyclerView; import com.hippo.widget.refreshlayout.RefreshLayout; @@ -40,7 +40,7 @@ import java.util.List; public class ContentLayout extends FrameLayout { private ProgressBar mProgressBar; - private ViewGroup mItView; + private ViewGroup mTipView; private RefreshLayout mRefreshLayout; private EasyRecyclerView mRecyclerView; private View mImageView; @@ -70,12 +70,12 @@ public class ContentLayout extends FrameLayout { LayoutInflater.from(context).inflate(R.layout.widget_content_layout, this); mProgressBar = (ProgressBar) getChildAt(0); - mItView = (ViewGroup) getChildAt(1); + mTipView = (ViewGroup) getChildAt(1); mRefreshLayout = (RefreshLayout) getChildAt(2); mSnackbar = (Snackbar) getChildAt(3); mRecyclerView = (EasyRecyclerView) mRefreshLayout.getChildAt(1); - mImageView = mItView.getChildAt(0); - mTextView = (TextView) mItView.getChildAt(1); + mImageView = mTipView.getChildAt(0); + mTextView = (TextView) mTipView.getChildAt(1); // mRecyclerViewOriginTop = mRecyclerView.getPaddingTop(); @@ -134,7 +134,7 @@ public class ContentLayout extends FrameLayout { public static final int TYPE_SOMEWHERE = 5; private ProgressBar mProgressBar; - private ViewGroup mItView; + private ViewGroup mTipView; private RefreshLayout mRefreshLayout; private EasyRecyclerView mRecyclerView; private View mImageView; @@ -142,6 +142,8 @@ public class ContentLayout extends FrameLayout { private Snackbar mSnackbar; private RecyclerView.LayoutManager mLayoutManager; + private ViewTransition mViewTransition; + private RecyclerView.OnScrollListener mOnScrollListener = new RecyclerView.OnScrollListener() { @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy){ @@ -190,7 +192,7 @@ public class ContentLayout extends FrameLayout { private void init(ContentLayout contentLayout) { mProgressBar = contentLayout.mProgressBar; - mItView = contentLayout.mItView; + mTipView = contentLayout.mTipView; mRefreshLayout = contentLayout.mRefreshLayout; mSnackbar = contentLayout.mSnackbar; mRecyclerView = contentLayout.mRecyclerView; @@ -198,6 +200,8 @@ public class ContentLayout extends FrameLayout { mTextView = contentLayout.mTextView; mLayoutManager = generateLayoutManager(); + mViewTransition = new ViewTransition(mRefreshLayout, mProgressBar, mTipView); + mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.setAdapter(this); mRecyclerView.addOnScrollListener(mOnScrollListener); @@ -211,26 +215,23 @@ public class ContentLayout extends FrameLayout { protected abstract RecyclerView.LayoutManager generateLayoutManager(); + public void showContent() { + mViewTransition.showView(0); + } + public void showProgressBar() { - ViewUtils.setVisibility(mProgressBar, View.VISIBLE); - ViewUtils.setVisibility(mItView, View.GONE); - ViewUtils.setVisibility(mRefreshLayout, View.GONE); + showProgressBar(true); + } + + public void showProgressBar(boolean animation) { + mViewTransition.showView(1, animation); } public void showText(CharSequence text) { - ViewUtils.setVisibility(mProgressBar, View.GONE); - ViewUtils.setVisibility(mItView, View.VISIBLE); - ViewUtils.setVisibility(mRefreshLayout, View.GONE); - + mViewTransition.showView(2); mTextView.setText(text); } - public void showContent() { - ViewUtils.setVisibility(mProgressBar, View.GONE); - ViewUtils.setVisibility(mItView, View.GONE); - ViewUtils.setVisibility(mRefreshLayout, View.VISIBLE); - } - /** * @throws IndexOutOfBoundsException * if {@code location < 0 || location >= size()} @@ -375,12 +376,16 @@ public class ContentLayout extends FrameLayout { getPageData(mCurrentTaskId, mCurrentTaskType, mCurrentTaskPage); } + public void firstRefresh() { + showProgressBar(false); + doRefresh(); + } + /** * Show progress bar first, than do refresh */ public void refresh() { showProgressBar(); - mRefreshLayout.setHeaderRefreshing(true); doRefresh(); } @@ -412,6 +417,9 @@ public class ContentLayout extends FrameLayout { } } + /** + * Reload data to layout. Maybe do it when change item view style + */ public void reload() { notifyDataSetChanged(); mCurrentPage = mFirstPage; diff --git a/app/src/main/res/layout/widget_content_layout.xml b/app/src/main/res/layout/widget_content_layout.xml index bb5d931e5..acc7ffd70 100644 --- a/app/src/main/res/layout/widget_content_layout.xml +++ b/app/src/main/res/layout/widget_content_layout.xml @@ -32,11 +32,11 @@ android:layout_gravity="center" android:orientation="vertical"> - + android:layout_gravity="center_horizontal" + android:src="@drawable/ic_sad"/>