Skip to content

Commit ed0b4ea

Browse files
committed
1、新增NavigationViewHelper及KeyboardHelper类以控制虚拟导航栏相关属性设置
2、新增FastKeyboardUtil类用于控制软键盘的打开与关闭 3、增加示例代码
1 parent 622b4b9 commit ed0b4ea

27 files changed

+661
-201
lines changed

apk/sample.apk

1.07 MB
Binary file not shown.

app/build.gradle

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ android {
1515
minSdkVersion ext.minSdkVersion
1616
targetSdkVersion ext.targetSdkVersion
1717
versionCode 229
18-
versionName "2.2.9-beta"
18+
versionName "2.2.9-beta1"
1919
multiDexEnabled true
2020
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
2121
buildConfigField "String", "BASE_URL", "\"https://api.douban.com/\""
@@ -28,6 +28,11 @@ android {
2828
keyPassword 'fast123#@!'
2929
}
3030
}
31+
// 忽略打包资源错误
32+
lintOptions {
33+
checkReleaseBuilds false
34+
abortOnError false
35+
}
3136
buildTypes {
3237
debug {
3338
//是否debug模式用于控制是否打印log等

app/src/main/AndroidManifest.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@
4646
android:name=".module.WebViewActivity"
4747
android:configChanges="locale|layoutDirection|mcc|mnc|orientation|screenSize"
4848
android:hardwareAccelerated="true"/>
49+
<!-- Title+EditTex示例-->
50+
<activity
51+
android:name=".module.main.sample.TitleWithEditTextActivity"
52+
android:configChanges="locale|layoutDirection|mcc|mnc"/>
4953
<!-- ToastUtil工具类示例-->
5054
<activity
5155
android:name=".module.main.sample.ToastActivity"

app/src/main/java/com/aries/library/fast/demo/AppImpl.java

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
import android.app.Activity;
44
import android.content.Context;
5-
import android.graphics.Color;
65
import android.support.annotation.NonNull;
76
import android.support.annotation.Nullable;
7+
import android.view.View;
88

9+
import com.aries.library.fast.demo.constant.GlobalConstant;
910
import com.aries.library.fast.demo.helper.RefreshHeaderHelper;
10-
import com.aries.library.fast.entity.FastNavigationConfigEntity;
11+
import com.aries.library.fast.demo.module.SplashActivity;
12+
import com.aries.library.fast.helper.NavigationViewHelper;
1113
import com.aries.library.fast.i.HttpErrorControl;
1214
import com.aries.library.fast.i.IMultiStatusView;
1315
import com.aries.library.fast.i.LoadMoreFoot;
@@ -196,22 +198,13 @@ public boolean createHttpErrorControl(int errorRes, int errorCode, @io.reactivex
196198

197199
@NonNull
198200
@Override
199-
public FastNavigationConfigEntity createNavigationBarControl(Activity activity) {
200-
return new FastNavigationConfigEntity()
201-
//是否控制导航栏优先级最高-设置为true其余属性方有效
202-
.setControlEnable(true)
203-
//是否添加假NavigationView优先级第二高--用于沉浸并修改背景
204-
.setAddNavigationViewEnable(true)
205-
//是否设置导航栏全透明优先级第三高--只对setControlEnable(true)且setAddNavigationViewEnable(false)有效
206-
.setTransEnable(false)
207-
//设置假NavigationView父Layout背景色--最终会调用setBackgroundDrawable,故注意调用顺序
208-
//设置setControlEnable(true)且setAddNavigationViewEnable(true)有效
209-
.setBackgroundColor(mContext.getResources().getColor(R.color.colorTabBackground))
210-
//设置假NavigationView父Layout背景资源
211-
// .setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.bg_drawer_mine))
212-
//设置导航栏颜色(包括系统默认及假NavigationView)半透明效果alpha为102--最终调用setDrawable
213-
.setColor(Color.argb(102, 0, 0, 0));
214-
//设置假NavigationView背景资源--设置setControlEnable(true)且setAddNavigationViewEnable(true)有效
215-
// .setDrawable(mContext.getResources().getDrawable(R.drawable.bg_drawer_mine));
201+
public NavigationViewHelper createNavigationBarControl(Activity activity, View bottomView) {
202+
NavigationViewHelper helper = NavigationViewHelper.with(activity)
203+
.setControlEnable(GlobalConstant.mControlEnable)
204+
.setTransEnable(GlobalConstant.mTransEnable)
205+
.setPlusNavigationViewEnable(activity.getClass() == SplashActivity.class ? false :
206+
GlobalConstant.mPlusNavigationViewEnable)
207+
.setBottomView(bottomView);
208+
return helper;
216209
}
217210
}

app/src/main/java/com/aries/library/fast/demo/constant/GlobalConstant.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.aries.library.fast.demo.constant;
22

3+
import com.aries.ui.util.RomUtil;
4+
35
/**
46
* Created: AriesHoo on 2017/9/29 11:30
57
* Function: 应用全局配置-默认
@@ -10,10 +12,14 @@ public class GlobalConstant {
1012
/**
1113
* 全局banner动画position
1214
*/
13-
public static final int GLOBAL_BANNER_TRANSITION_POSITION= 3;
15+
public static final int GLOBAL_BANNER_TRANSITION_POSITION = 3;
1416

1517
/**
1618
* 全局adapter动画值 1-5
1719
*/
18-
public static final int GLOBAL_ADAPTER_ANIMATION_VALUE= 2;
20+
public static final int GLOBAL_ADAPTER_ANIMATION_VALUE = 2;
21+
22+
public static final boolean mControlEnable = true;
23+
public static final boolean mTransEnable = false;
24+
public static final boolean mPlusNavigationViewEnable = RomUtil.isEMUI();
1925
}

app/src/main/java/com/aries/library/fast/demo/module/SplashActivity.java

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.aries.library.fast.demo.module;
22

33
import android.graphics.Color;
4+
import android.graphics.drawable.Drawable;
45
import android.os.Bundle;
56
import android.view.View;
67
import android.view.WindowManager;
@@ -24,8 +25,15 @@
2425
*/
2526
public class SplashActivity extends FastTitleActivity {
2627

28+
@BindView(R.id.tv_appSplash) TextView tvApp;
2729
@BindView(R.id.tv_versionSplash) TextView tvVersion;
2830
@BindView(R.id.tv_copyRightSplash) TextView tvCopyRight;
31+
32+
@Override
33+
public boolean isLightStatusBarEnable() {
34+
return false;
35+
}
36+
2937
@Override
3038
public void beforeSetContentView() {
3139
if (!isTaskRoot()) {//防止应用后台后点击桌面图标造成重启的假象---MIUI及Flyme上发现过(原生未发现)
@@ -35,6 +43,11 @@ public void beforeSetContentView() {
3543
super.beforeSetContentView();
3644
}
3745

46+
@Override
47+
public void beforeInitView() {
48+
super.beforeInitView();
49+
}
50+
3851
@Override
3952
public void setTitleBar(TitleBarView titleBar) {
4053
titleBar.setVisibility(View.GONE);
@@ -50,11 +63,16 @@ public void initView(Bundle savedInstanceState) {
5063
if (!isTaskRoot()) {
5164
return;
5265
}
53-
if (!StatusBarUtil.isSupportStatusBarFontChange()) {
66+
if (!StatusBarUtil.isSupportStatusBarFontChange() && isLightStatusBarEnable()) {
5467
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //隐藏状态栏
5568
}
56-
mContentView.setBackgroundColor(Color.WHITE);
69+
Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);
70+
FastUtil.getTintDrawable(drawable, Color.WHITE);
71+
tvApp.setCompoundDrawablesWithIntrinsicBounds(null, drawable, null, null);
72+
mContentView.setBackgroundResource(R.drawable.img_bg_login);
5773
tvVersion.setText("V" + FastUtil.getVersionName(mContext));
74+
tvVersion.setTextColor(Color.WHITE);
75+
tvCopyRight.setTextColor(Color.WHITE);
5876
RxJavaManager.getInstance().setTimer(2000, new RxJavaManager.TimerListener() {
5977
@Override
6078
public void timeEnd() {
@@ -63,23 +81,4 @@ public void timeEnd() {
6381
}
6482
}).compose(bindUntilEvent(ActivityEvent.DESTROY));
6583
}
66-
67-
// @Override
68-
// protected NavigationBarControl getNavigationBarControl() {
69-
// return new NavigationBarControl() {
70-
// @NonNull
71-
// @Override
72-
// public FastNavigationConfigEntity createNavigationBarControl(Activity activity) {
73-
// return new FastNavigationConfigEntity()
74-
// .setControlEnable(true)
75-
// .setTransEnable(false)
76-
// .setColor(Color.argb(80,0,0,0));
77-
// }
78-
// };
79-
// }
80-
81-
@Override
82-
protected View getNavigationBarControlView() {
83-
return tvCopyRight;
84-
}
8584
}

app/src/main/java/com/aries/library/fast/demo/module/main/HomeFragment.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.aries.library.fast.demo.module.main.sample.QQTitleActivity;
1919
import com.aries.library.fast.demo.module.main.sample.SwipeBackActivity;
2020
import com.aries.library.fast.demo.module.main.sample.TestFragmentActivity;
21+
import com.aries.library.fast.demo.module.main.sample.TitleWithEditTextActivity;
2122
import com.aries.library.fast.demo.module.main.sample.ToastActivity;
2223
import com.aries.library.fast.demo.module.main.sample.ali.ALiPayMainActivity;
2324
import com.aries.library.fast.demo.module.main.sample.news.NewsMainActivity;
@@ -164,6 +165,7 @@ public void loadData(int page) {
164165
listActivity.add(NewsMainActivity.class);
165166
listActivity.add(TestFragmentActivity.class);
166167
listActivity.add(ToastActivity.class);
168+
listActivity.add(TitleWithEditTextActivity.class);
167169
List<WidgetEntity> list = new ArrayList<>();
168170
String[] titles = getResources().getStringArray(R.array.arrays_home_list_title);
169171
for (int i = 0; i < titles.length; i++) {

app/src/main/java/com/aries/library/fast/demo/module/main/MainActivity.java

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,11 @@
11
package com.aries.library.fast.demo.module.main;
22

3-
import android.app.Activity;
4-
import android.graphics.Color;
53
import android.os.Bundle;
6-
import android.support.annotation.NonNull;
7-
import android.view.View;
84

95
import com.aries.library.fast.demo.R;
106
import com.aries.library.fast.demo.module.activity.ActivityFragment;
117
import com.aries.library.fast.demo.module.mine.MineFragment;
12-
import com.aries.library.fast.entity.FastNavigationConfigEntity;
138
import com.aries.library.fast.entity.FastTabEntity;
14-
import com.aries.library.fast.i.NavigationBarControl;
159
import com.aries.library.fast.module.activity.FastMainActivity;
1610
import com.flyco.tablayout.CommonTabLayout;
1711

@@ -64,24 +58,4 @@ public void initView(Bundle savedInstanceState) {
6458
// .setBackgroundColor(Color.MAGENTA));
6559
}
6660

67-
@Override
68-
protected NavigationBarControl getNavigationBarControl() {
69-
return new NavigationBarControl() {
70-
@NonNull
71-
@Override
72-
public FastNavigationConfigEntity createNavigationBarControl(Activity activity) {
73-
return new FastNavigationConfigEntity()
74-
.setControlEnable(true)
75-
.setTransEnable(true)
76-
.setAddNavigationViewEnable(false)
77-
.setColor(Color.argb(102,0,0,0));
78-
}
79-
};
80-
}
81-
82-
@Override
83-
protected View getNavigationBarControlView() {
84-
return getNavigationBarControl().createNavigationBarControl(mContext)
85-
.isTransEnable() ? null : super.getNavigationBarControlView();
86-
}
8761
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.aries.library.fast.demo.module.main.sample;
2+
3+
import android.os.Bundle;
4+
import android.view.View;
5+
import android.widget.EditText;
6+
7+
import com.aries.library.fast.demo.R;
8+
import com.aries.library.fast.demo.constant.GlobalConstant;
9+
import com.aries.library.fast.helper.KeyboardHelper;
10+
import com.aries.library.fast.module.activity.FastTitleActivity;
11+
import com.aries.ui.view.title.TitleBarView;
12+
13+
import butterknife.BindView;
14+
15+
/**
16+
* Created: AriesHoo on 2018/1/26 0026 下午 1:10
17+
* E-Mail: AriesHoo@126.com
18+
* Function: activity+顶部输入框模式
19+
* Description:
20+
*/
21+
public class TitleWithEditTextActivity extends FastTitleActivity {
22+
23+
@BindView(R.id.et_bottomTitle) EditText mEtBottom;
24+
@BindView(R.id.v_bottom) View mVBottom;
25+
26+
@Override
27+
public int getContentLayout() {
28+
return R.layout.activity_title_with_edit_text;
29+
}
30+
31+
@Override
32+
public void initView(Bundle savedInstanceState) {
33+
KeyboardHelper.with(this)
34+
.setControlNavigationBar(!GlobalConstant.mPlusNavigationViewEnable&&GlobalConstant.mControlEnable)
35+
.setEnable();
36+
}
37+
38+
@Override
39+
public void setTitleBar(TitleBarView titleBar) {
40+
titleBar.setTitleMainText("Title+底部输入框测试");
41+
}
42+
43+
@Override
44+
protected View getNavigationBarControlView() {
45+
return !GlobalConstant.mPlusNavigationViewEnable&&GlobalConstant.mControlEnable?
46+
null:super.getNavigationBarControlView();
47+
}
48+
}

app/src/main/java/com/aries/library/fast/demo/module/main/sample/ToastActivity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.aries.library.fast.demo.module.main.sample;
22

3+
import android.graphics.Color;
34
import android.os.Bundle;
45
import android.view.Gravity;
56
import android.view.View;
@@ -27,7 +28,7 @@ public int getContentLayout() {
2728

2829
@Override
2930
public void initView(Bundle savedInstanceState) {
30-
31+
mContentView.setBackgroundColor(Color.BLUE);
3132
}
3233

3334
@Override
1.11 MB
Loading

app/src/main/res/layout/activity_splash.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,14 @@
1515
android:layout_weight="2"/>
1616

1717
<TextView
18+
android:id="@+id/tv_appSplash"
1819
android:layout_width="wrap_content"
1920
android:layout_height="wrap_content"
2021
android:drawablePadding="12dp"
21-
android:drawableTop="@drawable/ic_launcher_black"
22+
android:drawableTop="@drawable/ic_launcher"
2223
android:gravity="center"
2324
android:text="@string/app_name"
24-
android:textColor="@color/colorTextBlack"
25+
android:textColor="@color/colorWhite"
2526
android:textSize="20dp"/>
2627

2728
<View
@@ -45,5 +46,5 @@
4546
android:paddingBottom="12dp"
4647
android:text="本库由Aries Hoo 提供技术支持"
4748
android:textColor="@color/colorTextBlack"
48-
android:textSize="10dp"/>
49+
android:textSize="12dp"/>
4950
</LinearLayout>
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:layout_width="match_parent"
4+
android:layout_height="match_parent"
5+
android:orientation="vertical">
6+
7+
<include layout="@layout/fast_layout_title_bar"/>
8+
9+
<View
10+
android:layout_width="match_parent"
11+
android:layout_height="0dp"
12+
android:layout_weight="1"/>
13+
14+
<ScrollView
15+
android:layout_width="match_parent"
16+
android:layout_height="wrap_content">
17+
18+
<LinearLayout
19+
android:layout_width="match_parent"
20+
android:layout_height="wrap_content"
21+
android:orientation="vertical">
22+
23+
24+
<EditText
25+
android:id="@+id/et_bottomTitle"
26+
android:layout_width="match_parent"
27+
android:layout_height="45dp"/>
28+
<View
29+
android:id="@+id/v_bottom"
30+
android:layout_width="match_parent"
31+
android:layout_height="0dp"/>
32+
</LinearLayout>
33+
</ScrollView>
34+
35+
</LinearLayout>

app/src/main/res/values/arrays.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<item>腾讯新闻主界面效果</item>
1414
<item>Activity直接嵌套Fragment效果</item>
1515
<item>ToastUtil工具类示例</item>
16+
<item>Title+EditText示例</item>
1617
</array>
1718

1819
<array name="arrays_tab_ali">

library/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ android {
99
minSdkVersion 15
1010
targetSdkVersion 25
1111
versionCode 229
12-
versionName "2.2.9-beta"
12+
versionName "2.2.9-beta1"
1313
}
1414
buildTypes {
1515
release {

0 commit comments

Comments
 (0)