From 193fa3550bb27d9bfeb934935e328c4d0db523eb Mon Sep 17 00:00:00 2001
From: mwang <8205347@qq.com>
Date: Fri, 26 Apr 2019 23:33:17 +0800
Subject: [PATCH] =?UTF-8?q?=E7=AB=A0=E8=8A=82=E7=BC=93=E5=AD=98=E9=A2=84?=
=?UTF-8?q?=E5=85=88=E8=AF=BB=E5=8F=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
zhuike/src/main/AndroidManifest.xml | 38 +---
.../com/novelbook/android/BookActivity.java | 10 +-
.../android/Fragments/BasicFragment.java | 6 +-
.../android/Fragments/Fragment_Shelf.java | 1 +
.../android/Fragments/Fragment_bookStore.java | 23 ++-
.../android/Fragments/Fragment_booklist.java | 4 +
.../android/Fragments/Fragment_paihang.java | 6 +-
.../com/novelbook/android/ReadActivity.java | 6 +
.../android/adapter/BookListAdapter.java | 7 +-
.../netutils/OnSuccessAndFaultSub.java | 4 +-
.../com/novelbook/android/utils/BookUtil.java | 34 +++-
.../novelbook/android/utils/PageFactory.java | 186 ++++++++++--------
.../novelbook/android/view/PageWidget.java | 34 ++--
zhuike/src/main/res/layout/activity_book.xml | 7 +-
zhuike/src/main/res/layout/app_bar_main2.xml | 1 +
.../res/layout/fragment_fragment_paihang.xml | 6 +-
.../layout/recycle_list_item_bangdanNew.xml | 6 +-
zhuike/src/main/res/values/strings.xml | 2 +
zhuike/src/main/res/values/styles.xml | 4 +-
19 files changed, 224 insertions(+), 161 deletions(-)
diff --git a/zhuike/src/main/AndroidManifest.xml b/zhuike/src/main/AndroidManifest.xml
index 14c8e3d..520db16 100644
--- a/zhuike/src/main/AndroidManifest.xml
+++ b/zhuike/src/main/AndroidManifest.xml
@@ -15,33 +15,16 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/ToolBarTheme"
+ android:launchMode="singleInstance"
android:usesCleartextTraffic="true">
-
-
-
+
-
+
-
-
+
@@ -88,9 +65,6 @@
-
0) {
mNovel = LitePal.find(Novel.class, mNovel.getId()); //更新最新进度
- if(pageFactory==null){
+ if(pageFactory==null){
pageFactory = PageFactory.getInstance(getApplicationContext());
}
- if(( pageFactory.getNovle()==null || mNovel.getId() !=pageFactory.getNovle().getId())){
+ if( pageFactory.isWorking() && ( pageFactory.getNovle()==null || mNovel.getId() !=pageFactory.getNovle().getId())){
pageFactory.prepareBook(mNovel);
}
}
diff --git a/zhuike/src/main/java/com/novelbook/android/Fragments/BasicFragment.java b/zhuike/src/main/java/com/novelbook/android/Fragments/BasicFragment.java
index db6f7f0..800cc53 100644
--- a/zhuike/src/main/java/com/novelbook/android/Fragments/BasicFragment.java
+++ b/zhuike/src/main/java/com/novelbook/android/Fragments/BasicFragment.java
@@ -139,7 +139,7 @@ public abstract class BasicFragment extends Fragment {
@Override
public void handleMessage(Message msg) {
-
+ hideProgress();
int wt = msg.what;
if (msg.what == 1) {
@@ -159,7 +159,7 @@ public abstract class BasicFragment extends Fragment {
Toast.makeText(getActivity(),"好像没有网络啦",Toast.LENGTH_LONG).show();
}
- hideProgress();
+
}
};
@@ -385,7 +385,7 @@ public abstract class BasicFragment extends Fragment {
public void reload() {
- initViews();
+ loadData();
}
public void loadData() {
initData();
diff --git a/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_Shelf.java b/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_Shelf.java
index 266c670..220b9dd 100644
--- a/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_Shelf.java
+++ b/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_Shelf.java
@@ -174,6 +174,7 @@ public class Fragment_Shelf extends BasicFragment {
}
});
+ mAdapter.setNorecord(R.string.noRecordInshelf);
((Main2Activity) activity).setShelfFragment(this);
}
@Override
diff --git a/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_bookStore.java b/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_bookStore.java
index 165e1eb..562a0ff 100644
--- a/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_bookStore.java
+++ b/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_bookStore.java
@@ -3,6 +3,7 @@ package com.novelbook.android.Fragments;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
+import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.View;
@@ -25,8 +26,8 @@ public class Fragment_bookStore extends BasicFragment {
ViewPager mViewpager;
@BindView(R.id.tab_layout)
SlidingTabLayout tabLayout;
-
- private ArrayList mFragments;
+ private FragmentStatePagerAdapter mAdapter =null;
+ private ArrayList mFragments;
ArrayList mList;
String[] mTitle;
@@ -69,8 +70,16 @@ public class Fragment_bookStore extends BasicFragment {
@Override
public void initData() {
+ mTitle = new String[]{"精选", "榜单","分类"};
+ if(mAdapter!=null) {
+ for(BasicFragment bf:mFragments){
+ bf.initData();
+ }
+ // mViewpager.setCurrentItem(0);
+ mAdapter.notifyDataSetChanged();
+ }
}
@Override
public void initViews(){
@@ -83,17 +92,17 @@ public class Fragment_bookStore extends BasicFragment {
if(mFragments ==null || mFragments.size() ==0){
// mTitle = new String[]{"精选", "榜单", "书单"};
- mTitle = new String[]{"精选", "榜单","分类"};
mFragments = new ArrayList<>();
mFragments.add(new Fragment_jingxuan());
mFragments.add(new Fragment_bangdan());
mFragments.add(FragmentCates.newInstance());
+
// mFragments.add(new Fragment_shudan());
Log.d(TAG,"initial fragments in tabs ");
}
Log.d(TAG,"set viewPager adapter ");
// FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(activity.getSupportFragmentManager()) { 第一次进入没问题,再次进入ViewPager的fragment时里面内容就没了,数据丢失 https://blog.csdn.net/allan_bst/article/details/64920076
- FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(getChildFragmentManager()) {
+ mAdapter = new FragmentStatePagerAdapter(getChildFragmentManager()) {
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
@@ -112,11 +121,15 @@ public class Fragment_bookStore extends BasicFragment {
mViewpager.setOffscreenPageLimit(4);//预加载设置
mViewpager.setAdapter(mAdapter);
tabLayout.setViewPager(mViewpager);
+
+
// tabLayout.setViewPager(mViewpager, mTitle, activity, mFragments);
- mViewpager.setCurrentItem(0);
+ // mViewpager.setCurrentItem(0);
}
+
+
@Override
public void setFTag() {
TAG="com.novelbook.android.Fragment_Store";
diff --git a/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_booklist.java b/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_booklist.java
index 7168d2d..6bde796 100644
--- a/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_booklist.java
+++ b/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_booklist.java
@@ -42,6 +42,7 @@ import butterknife.BindView;
public class Fragment_booklist extends BasicFragment {
+ public static String TAG = Fragment_booklist.class.getSimpleName();
private static final String EXTR_CATE ="cate" ;
private static final String EXTR_PROGRESS ="progress" ;
private static final String EXTR_SEARCH ="search";
@@ -266,6 +267,9 @@ public class Fragment_booklist extends BasicFragment {
}
@Override
public void initViews(){
+ //mRecyclerView
+
+ //lv_catalogue.setFastScrollStyle(R.style.FastScrollTheme); //不起作用
initLoadMoreListener();
}
diff --git a/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_paihang.java b/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_paihang.java
index b34f057..1f92e56 100644
--- a/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_paihang.java
+++ b/zhuike/src/main/java/com/novelbook/android/Fragments/Fragment_paihang.java
@@ -133,7 +133,6 @@ final String TAG = Fragment_paihang.class.getSimpleName();
@Override
public void initData() {
- tmp=0;
loadSearchData();
}
private void loadSearchData(){
@@ -212,7 +211,7 @@ final String TAG = Fragment_paihang.class.getSimpleName();
handler.sendEmptyMessage(1);
}
};
- showProgressDialog(false,"正在加载...");
+ showProgressDialog(false, "正在加载...");
BookSubscribe.getCateNovelList(cate, pageNo, tab1Pos+1, tab3Pos+1, new OnSuccessAndFaultSub(successAndFaultListener, getActivity()));
@@ -330,9 +329,10 @@ final String TAG = Fragment_paihang.class.getSimpleName();
Toast.makeText(activity, selectedKey,
Toast.LENGTH_SHORT).show();
tvHint.setText(selectedKey);
- Log.d(TAG, String.format("tabChanged: to load data %s,pageno %s" , selectedKey,pageNo ));
+ Log.d(TAG, String.format("tabChanged: to load data %s,pageno %s, tmp %s" , selectedKey,pageNo ,tmp));
if( tmp<4) return;
+
loadSearchData();
diff --git a/zhuike/src/main/java/com/novelbook/android/ReadActivity.java b/zhuike/src/main/java/com/novelbook/android/ReadActivity.java
index 867bc45..12cfbb6 100644
--- a/zhuike/src/main/java/com/novelbook/android/ReadActivity.java
+++ b/zhuike/src/main/java/com/novelbook/android/ReadActivity.java
@@ -427,6 +427,12 @@ public class ReadActivity extends Activity_base implements SpeechSynthesizerLis
public void cancel() {
pageFactory.cancelPage();
}
+
+ @Override
+ public Boolean canCancel() {
+ // Log.d(TAG, "canCancel: cancelPage canCancel ?" + pageFactory.canCancelPage());
+ return true;//pageFactory.canCancelPage();
+ }
});
}
diff --git a/zhuike/src/main/java/com/novelbook/android/adapter/BookListAdapter.java b/zhuike/src/main/java/com/novelbook/android/adapter/BookListAdapter.java
index 12eb1a6..6ef5fa3 100644
--- a/zhuike/src/main/java/com/novelbook/android/adapter/BookListAdapter.java
+++ b/zhuike/src/main/java/com/novelbook/android/adapter/BookListAdapter.java
@@ -54,6 +54,11 @@ public class BookListAdapter extends RecyclerView.Adapter< RecyclerView.ViewHol
private boolean showFootView =false;
private float percent =0;
+ private int norecord =R.string.noRecord;
+
+ public void setNorecord(int norecord) {
+ this.norecord = norecord;
+ }
public void setPercent(float percent) {
this.percent = percent;
@@ -183,7 +188,7 @@ public class BookListAdapter extends RecyclerView.Adapter< RecyclerView.ViewHol
}else if (hd instanceof EmptyViewHolder) {
EmptyViewHolder holder = (EmptyViewHolder)hd;
holder.tvEmpty.setVisibility(View.VISIBLE);
- holder.tvEmpty.setText(R.string.noRecord);
+ holder.tvEmpty.setText(norecord);
}
diff --git a/zhuike/src/main/java/com/novelbook/android/netutils/OnSuccessAndFaultSub.java b/zhuike/src/main/java/com/novelbook/android/netutils/OnSuccessAndFaultSub.java
index 076de09..5b1e100 100644
--- a/zhuike/src/main/java/com/novelbook/android/netutils/OnSuccessAndFaultSub.java
+++ b/zhuike/src/main/java/com/novelbook/android/netutils/OnSuccessAndFaultSub.java
@@ -114,7 +114,9 @@ public class OnSuccessAndFaultSub extends DisposableObserver
public void onError(Throwable e) {
try {
- if (e instanceof SocketTimeoutException) {//请求超时
+ if (e instanceof SocketTimeoutException) {
+ mOnSuccessAndFaultListener.onFault("网络连接超时");
+ //请求超时
} else if (e instanceof ConnectException) {//网络连接超时
// ToastManager.showShortToast("网络连接超时");
mOnSuccessAndFaultListener.onFault("网络连接超时");
diff --git a/zhuike/src/main/java/com/novelbook/android/utils/BookUtil.java b/zhuike/src/main/java/com/novelbook/android/utils/BookUtil.java
index 5af2998..519734e 100644
--- a/zhuike/src/main/java/com/novelbook/android/utils/BookUtil.java
+++ b/zhuike/src/main/java/com/novelbook/android/utils/BookUtil.java
@@ -117,6 +117,13 @@ public class BookUtil {
private Site mSite;
private SiteRule mSiteRule;
+ private Map chaptCache = new HashMap();
+ private Map chaptDownStatus = new HashMap();
+ DownloadStatus downloadStatus = DownloadStatus.notStart;
+
+
+
+
public NovelSites getmNovelSites() {
return mNovelSites;
}
@@ -143,7 +150,7 @@ public class BookUtil {
if (mChapters.isEmpty()) { //1. 首次打开 本地导入的书
if (bookPath == null || !bookPath.equals(mNovel.getNovelPath())) {
- cleanCacheFile();
+ cleanCacheFile();
this.bookPath = mNovel.getNovelPath();
bookName = FileUtils.getFileName(bookPath);
cacheBook();
@@ -332,6 +339,11 @@ public class BookUtil {
return false;
}
+ private long tmpChaptLen=0;
+
+ public void setTmpChaptLen(long tmpChaptLen) {
+ this.tmpChaptLen = tmpChaptLen;
+ }
private boolean isChangeSource =false;
private int mChangeChapId;
@@ -342,6 +354,12 @@ public class BookUtil {
Log.d(TAG, "changing Source: same site with original " + domain);
return;
}
+
+ this.muluRetryCount=0;
+ this.downloadStatus = DownloadStatus.notStart;
+ chaptDownStatus.clear();
+ chaptCache.clear();
+
mChangeChapId = chapId;
mChangeTitle =chapTitle;
for (Site site:mNovelSites.getSites() ) {
@@ -375,6 +393,7 @@ public class BookUtil {
return f.exists();
}
+
private class BookTask extends AsyncTask {
private String domain;
private int chapId;
@@ -725,8 +744,8 @@ int muluRetryCount =0;
public int next(boolean back){
position += 1;
- if (position > bookLen){
- position = bookLen;
+ if (position > tmpChaptLen){
+ position = tmpChaptLen;
return -1;
}
char result = chaptCurrent(); //current();
@@ -737,11 +756,11 @@ int muluRetryCount =0;
}
public char[] nextLine(){
- if (position >= bookLen){
+ if (position >= tmpChaptLen){
return null;
}
String line = "";
- while (position < bookLen){
+ while (position < tmpChaptLen){
int word = next(false);
if (word == -1){
break;
@@ -1147,9 +1166,7 @@ int muluRetryCount =0;
}
- private Map chaptCache = new HashMap();
- private Map chaptDownStatus = new HashMap();
- DownloadStatus downloadStatus = DownloadStatus.notStart;
+
private enum DownloadStatus{
notStart,
downloading,
@@ -1194,6 +1211,7 @@ int muluRetryCount =0;
//获取chapter 缓存
public char[] chaptChars(final int index) {
+ // Log.d(TAG, String.format("prepare book begin to load content for chapter %s ------------------------------------------------------------------------->", index));
char[] block=null;
if(chaptCache.containsKey(Integer.valueOf(index))) {
block = chaptCache .get(index).getData().get();
diff --git a/zhuike/src/main/java/com/novelbook/android/utils/PageFactory.java b/zhuike/src/main/java/com/novelbook/android/utils/PageFactory.java
index 1fba10e..0f3e172 100644
--- a/zhuike/src/main/java/com/novelbook/android/utils/PageFactory.java
+++ b/zhuike/src/main/java/com/novelbook/android/utils/PageFactory.java
@@ -36,9 +36,11 @@ import java.io.IOException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
//import static com.baidu.tts.loopj.AsyncHttpClient.log;
@@ -165,7 +167,7 @@ public class PageFactory implements ChangeSource{
ContentValues values = new ContentValues();
-
+ ConcurrentHashMap> chaptMap;
private List currentChaptPages;
private List nextChaptPages;
private List preChaptPages;
@@ -209,23 +211,20 @@ public class PageFactory implements ChangeSource{
List chaptPages = new ArrayList();
chaptPages.add(new TRPage());
+ long starttime = new Date().getTime();
-
- if (fileRetryCnt.containsKey(chaptId)) {
- fileRetryCnt.put(chaptId, fileRetryCnt.get(chaptId) + 1);
- } else {
- fileRetryCnt.clear();//只保留一个章节数据
- fileRetryCnt.put(chaptId, 1);
+ if(chaptMap==null) {
+ chaptMap = new ConcurrentHashMap>();
+ }
+ if(chaptMap.containsKey(chaptId)){
+ chaptPages =chaptMap.get(chaptId);
+ mBookUtil.setBookLen( chaptPages.get(chaptPages.size()-1).getEnd());
+ mBookUtil.setChapterNo(chaptId);
+ Log.d(TAG, String.format("prepare book to load chapt %s, cost %s ",chaptId ,new Date().getTime() -starttime) );
+ return chaptMap.get(chaptId);
}
- Log.d(TAG, String.format("prepare book loadCurrentChapt %s, rertying count %s ",chaptId, fileRetryCnt.get(chaptId)));
- if(fileRetryCnt.get(chaptId) > Constants.retryCnt){
- mStatus = Status.FAIL;
- drawStatus(mBookPageWidget.getCurPage());
- drawStatus(mBookPageWidget.getNextPage());
- return chaptPages;
- }
final File file = new File(getChapterFileName(chaptId));
if (!file.exists()) { //待下载
@@ -235,15 +234,9 @@ public class PageFactory implements ChangeSource{
}
-
-
-
-
if(!mBook.isLocalBook()) {
mStatus = Status.OPENING;
- drawStatus(mBookPageWidget.getCurPage());
- drawStatus(mBookPageWidget.getNextPage());
// final File file = new File(getChapterFileName(chaptId));
@@ -251,7 +244,25 @@ public class PageFactory implements ChangeSource{
if (!file.exists()) {
- mStatus = Status.OPENING;
+ if (fileRetryCnt.containsKey(chaptId)) {
+ fileRetryCnt.put(chaptId, fileRetryCnt.get(chaptId) + 1);
+ } else {
+ fileRetryCnt.clear();//只保留一个章节数据
+ fileRetryCnt.put(chaptId, 1);
+ }
+
+ Log.d(TAG, String.format("prepare book loadCurrentChapt %s, rertying count %s ",chaptId, fileRetryCnt.get(chaptId)));
+
+ if(fileRetryCnt.get(chaptId) > Constants.retryCnt){
+ mStatus = Status.FAIL;
+ drawStatus(mBookPageWidget.getCurPage());
+ drawStatus(mBookPageWidget.getNextPage());
+ return chaptPages;
+ }
+
+ drawStatus(mBookPageWidget.getCurPage());
+ drawStatus(mBookPageWidget.getNextPage());
+
if( !NetUtil.isNetworkConnected()){ //TODO: 500错误处理
mStatus = Status.NETWORKFAILE;
drawStatus(mBookPageWidget.getCurPage());
@@ -303,46 +314,73 @@ public class PageFactory implements ChangeSource{
super.run();
}}.start();
-
-
drawStatus(mBookPageWidget.getCurPage());
drawStatus(mBookPageWidget.getNextPage());
+
return chaptPages;
-
-
-
}
- }/*else if(getChapters().size()==0) {
- mStatus = Status.FAIL;
- drawStatus(mBookPageWidget.getCurPage());
- drawStatus(mBookPageWidget.getNextPage());
- return chaptPages;
- }*/
+ }
- chaptPages.clear();
+ chaptPages =readChaptCache(chaptId);
+ chaptMap.put(chaptId,chaptPages);
+ mBookUtil.setBookLen( chaptPages.get(chaptPages.size()-1).getEnd());
+ mBookUtil.setChapterNo(chaptId);
+
+ Log.d(TAG, String.format("prepare book to load chapt %s, cost %s ",chaptId ,new Date().getTime() -starttime) );
+ mStatus = Status.FINISH;
+ Log.d(TAG, String.format("changing Source prepare book to draw chapter %s, currentChapter %s ",chaptId ,currentChapter ) );
+ /* drawStatus(mBookPageWidget.getCurPage());
+ drawStatus(mBookPageWidget.getNextPage());*/
+ return chaptPages;
+ }
+
+ void preReadChaptCache(final int chaptId){
+ if(chaptMap==null) {
+ chaptMap = new ConcurrentHashMap>();
+ }
+ if(chaptMap.containsKey(chaptId)){
+ return;
+ }
+ Log.d(TAG, String.format("prepare book to preLoad chapt %s, current chapt %s --->",chaptId ,currentChapter) );
+ new Thread() {
+ @Override
+ public void run() {
+ Log.d(TAG, String.format("prepare book to preRead chapter %s ,thread.name %s",chaptId,Thread.currentThread().getName() ) );
+ File file = new File(getChapterFileName(chaptId));
+ if(file.exists()) {
+ chaptMap.put(chaptId, readChaptCache(chaptId));
+ Log.d(TAG, String.format("prepare book to preLoad success " ) );
+ }
+ Log.d(TAG, String.format("prepare book to preLoad done <-----" ) );
+ super.run();
+ }}.start();
+ }
- // chaptId = mChapters!=null && mChapters.size() <= chaptId ? 1 : chaptId;
-
- Log.d(TAG, String.format("changing Source prepare book to open chapter %s, currentChapter %s ",chaptId ,currentChapter ) );
- char[] chars = mBookUtil.chaptChars(chaptId);
- String s = new String(chars);
- // Log.d(TAG, String.format("prepare book open chapter %s,chars %s ",chaptId ,s ) );
- mBookUtil.setBookLen(chars.length);
- mBookUtil.setChapterNo(chaptId);
- // TRPage page = new TRPage();
+ /**
+ * only read chapt that cached already
+ * @param chaptId
+ * @return
+ */
+ List readChaptCache(int chaptId){
+ List chaptPages = new ArrayList();
+ Log.d(TAG, String.format("changing Source prepare book to open chapter %s, currentChapter %s ",chaptId ,currentChapter ) );
+ char[] chars = mBookUtil.chaptChars(chaptId);
+ mBookUtil.setTmpChaptLen(chars.length);
+// mBookUtil.setChapterNo(chaptId);
+ // TRPage page = new TRPage();
long length =0;
int pageNo =0;
while(length 0){
- cancelPage = true;
- mAnimationProvider.setCancel(true);
- }else {
- cancelPage = false;
- mAnimationProvider.setCancel(false);
+ if(mTouchListener.canCancel()) {
+ if (isNext) {
+ if (x - moveX > 0) {
+ cancelPage = true;
+ mAnimationProvider.setCancel(true);
+ } else {
+ cancelPage = false;
+ mAnimationProvider.setCancel(false);
+ }
+ } else {
+ if (x - moveX < 0) {
+ mAnimationProvider.setCancel(true);
+ cancelPage = true;
+ } else {
+ mAnimationProvider.setCancel(false);
+ cancelPage = false;
+ }
}
}else{
- if (x - moveX < 0){
- mAnimationProvider.setCancel(true);
- cancelPage = true;
- }else {
- mAnimationProvider.setCancel(false);
- cancelPage = false;
- }
+ noNext=true;
}
+ if(cancelPage)
Log.e(TAG,"cancelPage:" + cancelPage);
}
@@ -309,6 +314,7 @@ public class PageWidget extends View {
Boolean prePage();
Boolean nextPage();
void cancel();
+ Boolean canCancel();
}
}
diff --git a/zhuike/src/main/res/layout/activity_book.xml b/zhuike/src/main/res/layout/activity_book.xml
index a721f42..90ffdf6 100644
--- a/zhuike/src/main/res/layout/activity_book.xml
+++ b/zhuike/src/main/res/layout/activity_book.xml
@@ -30,7 +30,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
- app:collapsedTitleGravity="center"
+ app:collapsedTitleGravity="center_horizontal"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleGravity="bottom"
app:expandedTitleTextAppearance="@style/TitleText"
@@ -142,8 +142,6 @@
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:layout_collapseMode="pin"
-
-
app:popupTheme="@style/ToolBarTheme.PopupOverlay">
diff --git a/zhuike/src/main/res/layout/app_bar_main2.xml b/zhuike/src/main/res/layout/app_bar_main2.xml
index acce11a..0e740df 100644
--- a/zhuike/src/main/res/layout/app_bar_main2.xml
+++ b/zhuike/src/main/res/layout/app_bar_main2.xml
@@ -57,6 +57,7 @@
android:id="@+id/rgSex"
style="@style/radioGroup"
+ android:layout_gravity="center_horizontal"
>
@@ -25,7 +25,7 @@
app:contentScrim="?attr/colorPrimary"
app:expandedTitleGravity="bottom"
app:expandedTitleTextAppearance="@style/TitleText"
- app:layout_scrollFlags="scroll|exitUntilCollapsed"
+ app:layout_scrollFlags="scroll|enterAlways"
app:toolbarId="@+id/toolbar">
diff --git a/zhuike/src/main/res/layout/recycle_list_item_bangdanNew.xml b/zhuike/src/main/res/layout/recycle_list_item_bangdanNew.xml
index 5b87b3b..e9f4c7c 100644
--- a/zhuike/src/main/res/layout/recycle_list_item_bangdanNew.xml
+++ b/zhuike/src/main/res/layout/recycle_list_item_bangdanNew.xml
@@ -33,15 +33,15 @@
diff --git a/zhuike/src/main/res/values/strings.xml b/zhuike/src/main/res/values/strings.xml
index d92fe98..0b70324 100644
--- a/zhuike/src/main/res/values/strings.xml
+++ b/zhuike/src/main/res/values/strings.xml
@@ -188,6 +188,8 @@
换源
00.00%
已缓存
+ 书架空空如也
+ 正在加载...
- 小燕—女青、中英、普通话
diff --git a/zhuike/src/main/res/values/styles.xml b/zhuike/src/main/res/values/styles.xml
index b1e2052..32ab1fe 100644
--- a/zhuike/src/main/res/values/styles.xml
+++ b/zhuike/src/main/res/values/styles.xml
@@ -338,11 +338,13 @@
- match_parent
- wrap_content
- 2
- - center
+ - left
- end