From ce52d6c5baaaecb9ffbb4e94a2381d9bac505605 Mon Sep 17 00:00:00 2001 From: xsf Date: Wed, 9 Nov 2016 11:32:06 +0800 Subject: [PATCH 01/11] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E6=B5=8F=E8=A7=88?= =?UTF-8?q?=E5=99=A8=E6=9F=A5=E7=9C=8B=E6=96=B0=E9=97=BB=E8=AF=A6=E6=83=85?= =?UTF-8?q?bug=202.=E4=BF=AE=E6=94=B9retrofit=E7=BC=93=E5=AD=98=E9=97=AE?= =?UTF-8?q?=E9=A2=98=203.=E6=9B=B4=E6=96=B0common=E5=BA=93=E5=B7=A5?= =?UTF-8?q?=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/jaydenxiao/androidfire/api/Api.java | 6 ++++-- .../androidfire/ui/news/activity/NewsBrowserActivity.java | 6 ++++-- .../androidfire/ui/news/fragment/NewsFrament.java | 1 + .../java/com/jaydenxiao/common/commonutils/FormatUtil.java | 2 +- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/jaydenxiao/androidfire/api/Api.java b/app/src/main/java/com/jaydenxiao/androidfire/api/Api.java index dae1e11..9703353 100644 --- a/app/src/main/java/com/jaydenxiao/androidfire/api/Api.java +++ b/app/src/main/java/com/jaydenxiao/androidfire/api/Api.java @@ -2,6 +2,7 @@ import android.support.annotation.NonNull; +import android.text.TextUtils; import android.util.SparseArray; import com.google.gson.Gson; @@ -143,15 +144,16 @@ public static String getCacheControl() { @Override public Response intercept(Chain chain) throws IOException { Request request = chain.request(); + String cacheControl = request.cacheControl().toString(); if (!NetWorkUtils.isNetConnected(BaseApplication.getAppContext())) { request = request.newBuilder() - .cacheControl(CacheControl.FORCE_CACHE) + .cacheControl(TextUtils.isEmpty(cacheControl)?CacheControl.FORCE_NETWORK:CacheControl.FORCE_CACHE) .build(); } Response originalResponse = chain.proceed(request); if (NetWorkUtils.isNetConnected(BaseApplication.getAppContext())) { //有网的时候读接口上的@Headers里的配置,你可以在这里进行统一的设置 - String cacheControl = request.cacheControl().toString(); + return originalResponse.newBuilder() .header("Cache-Control", cacheControl) .removeHeader("Pragma") diff --git a/app/src/main/java/com/jaydenxiao/androidfire/ui/news/activity/NewsBrowserActivity.java b/app/src/main/java/com/jaydenxiao/androidfire/ui/news/activity/NewsBrowserActivity.java index b9122ca..71a4e55 100644 --- a/app/src/main/java/com/jaydenxiao/androidfire/ui/news/activity/NewsBrowserActivity.java +++ b/app/src/main/java/com/jaydenxiao/androidfire/ui/news/activity/NewsBrowserActivity.java @@ -93,9 +93,11 @@ public void onProgressChanged(WebView view, int newProgress) { @Override protected void onDestroy() { + if(webView!=null) { + webView.removeAllViews(); + webView.destroy(); + } super.onDestroy(); - webView.removeAllViews(); - webView.destroy(); } } diff --git a/app/src/main/java/com/jaydenxiao/androidfire/ui/news/fragment/NewsFrament.java b/app/src/main/java/com/jaydenxiao/androidfire/ui/news/fragment/NewsFrament.java index facc2a6..445902a 100644 --- a/app/src/main/java/com/jaydenxiao/androidfire/ui/news/fragment/NewsFrament.java +++ b/app/src/main/java/com/jaydenxiao/androidfire/ui/news/fragment/NewsFrament.java @@ -61,6 +61,7 @@ protected void initView() { mNewsType = getArguments().getString(AppConstant.NEWS_TYPE); } irc.setLayoutManager(new LinearLayoutManager(getContext())); + datas.clear(); newListAdapter = new NewListAdapter(getContext(), datas); newListAdapter.openLoadAnimation(new ScaleInAnimation()); irc.setAdapter(newListAdapter); diff --git a/library/common/src/main/java/com/jaydenxiao/common/commonutils/FormatUtil.java b/library/common/src/main/java/com/jaydenxiao/common/commonutils/FormatUtil.java index fa6177e..23708d3 100644 --- a/library/common/src/main/java/com/jaydenxiao/common/commonutils/FormatUtil.java +++ b/library/common/src/main/java/com/jaydenxiao/common/commonutils/FormatUtil.java @@ -21,7 +21,7 @@ public static boolean isMobileNO(String mobiles) { 电信:133、153、180、189、(1349卫通)、177 总结起来就是第一位必定为1,第二位必定为3或5或8或7,其他位置的可以为0-9 */ - String telRegex = "[1][3578]\\d{9}";//"[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。 + String telRegex = "[1][34578]\\d{9}";//"[1]"代表第1位为数字1,"[3458]"代表第二位可以为3、4、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。 if (TextUtils.isEmpty(mobiles)) return false; else return mobiles.matches(telRegex); } From b2f74c3fb452e7a1ae1b6411efff82698dd8cd3d Mon Sep 17 00:00:00 2001 From: xsf Date: Wed, 9 Nov 2016 16:55:19 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E6=96=B0=E9=97=BB=E5=AD=90=E9=A2=91=E9=81=93=E7=9A=84=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=E5=90=8E=EF=BC=8C=E6=96=B0=E9=97=BB=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E4=B8=8D=E6=9B=B4=E6=96=B0bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/main/fragment/NewsMainFragment.java | 7 ++++++- .../common/base/BaseFragmentAdapter.java | 18 +++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/jaydenxiao/androidfire/ui/main/fragment/NewsMainFragment.java b/app/src/main/java/com/jaydenxiao/androidfire/ui/main/fragment/NewsMainFragment.java index 6b77d1d..7a1ea3a 100644 --- a/app/src/main/java/com/jaydenxiao/androidfire/ui/main/fragment/NewsMainFragment.java +++ b/app/src/main/java/com/jaydenxiao/androidfire/ui/main/fragment/NewsMainFragment.java @@ -81,7 +81,12 @@ public void returnMineNewsChannels(List newsChannelsMine) { channelNames.add(newsChannelsMine.get(i).getNewsChannelName()); mNewsFragmentList.add(createListFragments(newsChannelsMine.get(i))); } - fragmentAdapter = new BaseFragmentAdapter(getChildFragmentManager(), mNewsFragmentList, channelNames); + if(fragmentAdapter==null) { + fragmentAdapter = new BaseFragmentAdapter(getChildFragmentManager(), mNewsFragmentList, channelNames); + }else{ + //刷新fragment + fragmentAdapter.setFragments(getChildFragmentManager(),mNewsFragmentList,channelNames); + } viewPager.setAdapter(fragmentAdapter); tabs.setupWithViewPager(viewPager); MyUtils.dynamicSetTabLayoutMode(tabs); diff --git a/library/common/src/main/java/com/jaydenxiao/common/base/BaseFragmentAdapter.java b/library/common/src/main/java/com/jaydenxiao/common/base/BaseFragmentAdapter.java index b3f6784..ab7c0ae 100644 --- a/library/common/src/main/java/com/jaydenxiao/common/base/BaseFragmentAdapter.java +++ b/library/common/src/main/java/com/jaydenxiao/common/base/BaseFragmentAdapter.java @@ -3,6 +3,7 @@ import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; +import android.support.v4.app.FragmentTransaction; import com.jaydenxiao.common.commonutils.CollectionUtils; @@ -21,8 +22,23 @@ public BaseFragmentAdapter(FragmentManager fm, List fragmentList) { public BaseFragmentAdapter(FragmentManager fm, List fragmentList, List mTitles) { super(fm); - this.fragmentList = fragmentList; this.mTitles = mTitles; + setFragments(fm,fragmentList,mTitles); + } + //刷新fragment + public void setFragments(FragmentManager fm,List fragments,List mTitles) { + this.mTitles = mTitles; + if (this.fragmentList != null) { + FragmentTransaction ft = fm.beginTransaction(); + for (Fragment f : this.fragmentList) { + ft.remove(f); + } + ft.commitAllowingStateLoss(); + ft = null; + fm.executePendingTransactions(); + } + this.fragmentList = fragments; + notifyDataSetChanged(); } @Override From 5fa160582b284ce79e2bc697b8b5c348b4fca8d6 Mon Sep 17 00:00:00 2001 From: xsf Date: Wed, 9 Nov 2016 17:10:13 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E5=A2=9E=E5=8A=A0BaseFragmentStateAdapte?= =?UTF-8?q?r=E5=9F=BA=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/base/BaseFragmentAdapter.java | 6 +++ .../common/base/BaseFragmentStateAdapter.java | 51 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 library/common/src/main/java/com/jaydenxiao/common/base/BaseFragmentStateAdapter.java diff --git a/library/common/src/main/java/com/jaydenxiao/common/base/BaseFragmentAdapter.java b/library/common/src/main/java/com/jaydenxiao/common/base/BaseFragmentAdapter.java index ab7c0ae..5d9b3a0 100644 --- a/library/common/src/main/java/com/jaydenxiao/common/base/BaseFragmentAdapter.java +++ b/library/common/src/main/java/com/jaydenxiao/common/base/BaseFragmentAdapter.java @@ -10,6 +10,12 @@ import java.util.ArrayList; import java.util.List; +/** + * 该类内的每一个生成的 Fragment 都将保存在内存之中, + * 因此适用于那些相对静态的页,数量也比较少的那种; + * 如果需要处理有很多页,并且数据动态性较大、占用内存较多的情况, + * 应该使用FragmentStatePagerAdapter。 + */ public class BaseFragmentAdapter extends FragmentPagerAdapter { List fragmentList = new ArrayList(); diff --git a/library/common/src/main/java/com/jaydenxiao/common/base/BaseFragmentStateAdapter.java b/library/common/src/main/java/com/jaydenxiao/common/base/BaseFragmentStateAdapter.java new file mode 100644 index 0000000..3e267c0 --- /dev/null +++ b/library/common/src/main/java/com/jaydenxiao/common/base/BaseFragmentStateAdapter.java @@ -0,0 +1,51 @@ +package com.jaydenxiao.common.base; + +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentStatePagerAdapter; + +import com.jaydenxiao.common.commonutils.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * FragmentStatePagerAdapter 和前面的 FragmentPagerAdapter 一样,是继承子 PagerAdapter。 + * 但和 FragmentPagerAdapter 不一样的是, + * 正如其类名中的 'State' 所表明的含义一样, + * 该 PagerAdapter 的实现将只保留当前页面, + * 当页面离开视线后,就会被消除,释放其资源; + * 而在页面需要显示时,生成新的页面(就像 ListView 的实现一样)。 + * 这么实现的好处就是当拥有大量的页面时,不必在内存中占用大量的内存。 + */ +public class BaseFragmentStateAdapter extends FragmentStatePagerAdapter { + + List fragmentList = new ArrayList(); + private List mTitles; + + public BaseFragmentStateAdapter(FragmentManager fm, List fragmentList) { + super(fm); + this.fragmentList = fragmentList; + } + + public BaseFragmentStateAdapter(FragmentManager fm, List fragmentList, List mTitles) { + super(fm); + this.mTitles = mTitles; + this.fragmentList = fragmentList; + } + @Override + public CharSequence getPageTitle(int position) { + return !CollectionUtils.isNullOrEmpty(mTitles) ? mTitles.get(position) : ""; + } + + @Override + public Fragment getItem(int position) { + return fragmentList.get(position); + } + + @Override + public int getCount() { + return fragmentList.size(); + } + +} From dfa916c71ad5d49353ab9de04963fbd5ccf073cf Mon Sep 17 00:00:00 2001 From: xsf Date: Sat, 26 Nov 2016 14:20:05 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=A8=AA=E5=B1=8F?= =?UTF-8?q?=E5=A5=94=E6=BA=83=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jaydenxiao/androidfire/api/Api.java | 17 ++++++++++++-- .../ui/news/contract/NewsChannelContract.java | 9 +++++++- .../ui/news/model/NewsChannelModel.java | 4 ++-- .../jaydenxiao/common/base/BaseActivity.java | 17 ++++++++++++-- .../jaydenxiao/common/commonutils/TUtil.java | 3 --- .../common/commonutils/ViewHolderUtil.java | 7 +++--- .../common/commonwidget/StatusBarCompat.java | 22 +++++++++++-------- 7 files changed, 57 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/jaydenxiao/androidfire/api/Api.java b/app/src/main/java/com/jaydenxiao/androidfire/api/Api.java index 9703353..4f81838 100644 --- a/app/src/main/java/com/jaydenxiao/androidfire/api/Api.java +++ b/app/src/main/java/com/jaydenxiao/androidfire/api/Api.java @@ -37,7 +37,7 @@ public class Api { public static final int CONNECT_TIME_OUT = 7676; public Retrofit retrofit; public ApiService movieService; - + public OkHttpClient okHttpClient; private static SparseArray sRetrofitManager = new SparseArray<>(HostType.TYPE_COUNT); /*************************缓存设置*********************/ @@ -93,7 +93,7 @@ public Response intercept(Chain chain) throws IOException { } }; - OkHttpClient okHttpClient = new OkHttpClient.Builder() + okHttpClient = new OkHttpClient.Builder() .readTimeout(READ_TIME_OUT, TimeUnit.MILLISECONDS) .connectTimeout(CONNECT_TIME_OUT, TimeUnit.MILLISECONDS) .addInterceptor(mRewriteCacheControlInterceptor) @@ -127,6 +127,19 @@ public static ApiService getDefault(int hostType) { return retrofitManager.movieService; } + /** + * OkHttpClient + * @return + */ + public static OkHttpClient getOkHttpClient(){ + Api retrofitManager = sRetrofitManager.get(HostType.NETEASE_NEWS_VIDEO); + if (retrofitManager == null) { + retrofitManager = new Api(HostType.NETEASE_NEWS_VIDEO); + sRetrofitManager.put(HostType.NETEASE_NEWS_VIDEO, retrofitManager); + } + return retrofitManager.okHttpClient; + } + /** * 根据网络状况获取缓存的策略 diff --git a/app/src/main/java/com/jaydenxiao/androidfire/ui/news/contract/NewsChannelContract.java b/app/src/main/java/com/jaydenxiao/androidfire/ui/news/contract/NewsChannelContract.java index 91ffdd6..60dbf4d 100644 --- a/app/src/main/java/com/jaydenxiao/androidfire/ui/news/contract/NewsChannelContract.java +++ b/app/src/main/java/com/jaydenxiao/androidfire/ui/news/contract/NewsChannelContract.java @@ -19,18 +19,25 @@ public interface NewsChannelContract { interface Model extends BaseModel { Observable> lodeMineNewsChannels(); + Observable> lodeMoreNewsChannels(); - Observable swapDb(ArrayList newsChannelTableList,int fromPosition, int toPosition); + + Observable swapDb(ArrayList newsChannelTableList, int fromPosition, int toPosition); + Observable updateDb(ArrayList mineChannelTableList, ArrayList moreChannelTableList); } interface View extends BaseView { void returnMineNewsChannels(List newsChannelsMine); + void returnMoreNewsChannels(List newsChannelsMore); } + abstract static class Presenter extends BasePresenter { public abstract void lodeChannelsRequest(); + public abstract void onItemSwap(ArrayList newsChannelTableList, int fromPosition, final int toPosition); + public abstract void onItemAddOrRemove(ArrayList mineChannelTableList, ArrayList moreChannelTableList); } } diff --git a/app/src/main/java/com/jaydenxiao/androidfire/ui/news/model/NewsChannelModel.java b/app/src/main/java/com/jaydenxiao/androidfire/ui/news/model/NewsChannelModel.java index 1221ce4..61086d1 100644 --- a/app/src/main/java/com/jaydenxiao/androidfire/ui/news/model/NewsChannelModel.java +++ b/app/src/main/java/com/jaydenxiao/androidfire/ui/news/model/NewsChannelModel.java @@ -62,7 +62,7 @@ public void call(Subscriber> subscriber) { } @Override - public Observable swapDb(final ArrayList newsChannelTableList,int fromPosition, int toPosition) { + public Observable swapDb(final ArrayList newsChannelTableList, int fromPosition, int toPosition) { return Observable.create(new Observable.OnSubscribe() { @Override public void call(Subscriber subscriber) { @@ -75,7 +75,7 @@ public void call(Subscriber subscriber) { } @Override - public Observable updateDb(final ArrayList mineChannelTableList,final ArrayList moreChannelTableList) { + public Observable updateDb(final ArrayList mineChannelTableList, final ArrayList moreChannelTableList) { return Observable.create(new Observable.OnSubscribe() { @Override public void call(Subscriber subscriber) { diff --git a/library/common/src/main/java/com/jaydenxiao/common/base/BaseActivity.java b/library/common/src/main/java/com/jaydenxiao/common/base/BaseActivity.java index 4b69fee..8502b3b 100644 --- a/library/common/src/main/java/com/jaydenxiao/common/base/BaseActivity.java +++ b/library/common/src/main/java/com/jaydenxiao/common/base/BaseActivity.java @@ -4,6 +4,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; +import android.content.res.Configuration; import android.os.Bundle; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; @@ -62,10 +63,12 @@ public abstract class BaseActivity public E mModel; public Context mContext; public RxManager mRxManager; + private boolean isConfigChange=false; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + isConfigChange=false; mRxManager=new RxManager(); doBeforeSetcontentView(); setContentView(getLayoutId()); @@ -258,14 +261,24 @@ protected void onPause() { } } + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + isConfigChange=true; + } @Override protected void onDestroy() { super.onDestroy(); if (mPresenter != null) mPresenter.onDestroy(); - mRxManager.clear(); + if(mRxManager!=null) { + mRxManager.clear(); + } + if(isConfigChange){ + AppManager.getAppManager().finishActivity(this); + } ButterKnife.unbind(this); - AppManager.getAppManager().finishActivity(this); + } } diff --git a/library/common/src/main/java/com/jaydenxiao/common/commonutils/TUtil.java b/library/common/src/main/java/com/jaydenxiao/common/commonutils/TUtil.java index ddf45a7..6a3e762 100644 --- a/library/common/src/main/java/com/jaydenxiao/common/commonutils/TUtil.java +++ b/library/common/src/main/java/com/jaydenxiao/common/commonutils/TUtil.java @@ -12,11 +12,8 @@ public static T getT(Object o, int i) { .getGenericSuperclass())).getActualTypeArguments()[i]) .newInstance(); } catch (InstantiationException e) { - e.printStackTrace(); } catch (IllegalAccessException e) { - e.printStackTrace(); } catch (ClassCastException e) { - e.printStackTrace(); } return null; } diff --git a/library/common/src/main/java/com/jaydenxiao/common/commonutils/ViewHolderUtil.java b/library/common/src/main/java/com/jaydenxiao/common/commonutils/ViewHolderUtil.java index eb61d4a..7e4b8ea 100644 --- a/library/common/src/main/java/com/jaydenxiao/common/commonutils/ViewHolderUtil.java +++ b/library/common/src/main/java/com/jaydenxiao/common/commonutils/ViewHolderUtil.java @@ -31,14 +31,15 @@ public static T get(View view, int id) { * if (convertView == null) { convertView = LayoutInflater.from(context) * .inflate(R.layout.banana_phone, parent, false); } * - * ImageView bananaView = ViewHolder.get(convertView, R.id.banana); TextView - * phoneView = ViewHolder.get(convertView, R.id.phone); + * ImageView bananaView = ViewHolder.get(convertView, R.id.banana); + * TextView phoneView = ViewHolder.get(convertView, R.id.phone); * * BananaPhone bananaPhone = getItem(position); * phoneView.setText(bananaPhone.getPhone()); * bananaView.setImageResource(bananaPhone.getBanana()); * - * return convertView; } + * return convertView; + * } */ diff --git a/library/common/src/main/java/com/jaydenxiao/common/commonwidget/StatusBarCompat.java b/library/common/src/main/java/com/jaydenxiao/common/commonwidget/StatusBarCompat.java index ead8bd1..85cb603 100644 --- a/library/common/src/main/java/com/jaydenxiao/common/commonwidget/StatusBarCompat.java +++ b/library/common/src/main/java/com/jaydenxiao/common/commonwidget/StatusBarCompat.java @@ -35,8 +35,8 @@ public static void setStatusBarColor(Activity activity, int statusColor) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { //First translucent status bar. - window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //After LOLLIPOP not translucent status bar window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //Then call setStatusBarColor. @@ -51,6 +51,7 @@ public static void setStatusBarColor(Activity activity, int statusColor) { ViewGroup mDecorView = (ViewGroup) window.getDecorView(); if (mDecorView.getTag() != null && mDecorView.getTag() instanceof Boolean && (Boolean)mDecorView.getTag()) { //if has add fake status bar view + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); View mStatusBarView = mDecorView.getChildAt(0); if (mStatusBarView != null) { mStatusBarView.setBackgroundColor(statusColor); @@ -60,19 +61,22 @@ public static void setStatusBarColor(Activity activity, int statusColor) { //add margin View mContentChild = mContentView.getChildAt(0); if (mContentChild != null) { + window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); ViewCompat.setFitsSystemWindows(mContentChild, false); FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) mContentChild.getLayoutParams(); lp.topMargin += statusBarHeight; mContentChild.setLayoutParams(lp); + + //add fake status bar view + View mStatusBarView = new View(activity); + FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight); + layoutParams.gravity = Gravity.TOP; + mStatusBarView.setLayoutParams(layoutParams); + mStatusBarView.setBackgroundColor(statusColor); + mDecorView.addView(mStatusBarView, 0); + mDecorView.setTag(true); } - //add fake status bar view - View mStatusBarView = new View(activity); - FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight); - layoutParams.gravity = Gravity.TOP; - mStatusBarView.setLayoutParams(layoutParams); - mStatusBarView.setBackgroundColor(statusColor); - mDecorView.addView(mStatusBarView, 0); - mDecorView.setTag(true); + } } } From 1ddd2863b876e68b45719ffa5818ab434332e4b6 Mon Sep 17 00:00:00 2001 From: xsf Date: Fri, 2 Dec 2016 17:08:55 +0800 Subject: [PATCH 05/11] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E5=85=B3=E6=B3=A8?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=B3=A2=E6=B5=AA=E8=83=8C=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/gradle.xml | 2 +- app/build.gradle | 6 +- app/src/main/AndroidManifest.xml | 1 - .../ui/main/fragment/CareMainFragment.java | 27 +++- app/src/main/res/layout/fra_care_main.xml | 139 ++++++++++-------- build.gradle | 1 - library/common/build.gradle | 18 +-- .../common/commonwidget/WaveView.java | 108 ++++++++++++++ .../src/main/res/layout/act_image_pager.xml | 1 + 9 files changed, 217 insertions(+), 86 deletions(-) create mode 100644 library/common/src/main/java/com/jaydenxiao/common/commonwidget/WaveView.java diff --git a/.idea/gradle.xml b/.idea/gradle.xml index e34071a..04cddf1 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -5,7 +5,7 @@