44import android .os .Build ;
55import android .os .Bundle ;
66import android .support .v4 .widget .DrawerLayout ;
7+ import android .support .v7 .widget .RecyclerView ;
78import android .support .v7 .widget .SwitchCompat ;
89import android .view .View ;
910import android .widget .CompoundButton ;
11+ import android .widget .FrameLayout ;
1012import android .widget .ScrollView ;
13+ import android .widget .SeekBar ;
14+ import android .widget .TextView ;
1115
1216import com .aries .title .adapter .TitleAdapter ;
1317import com .aries .title .base .BaseRecycleActivity ;
18+ import com .aries .title .entity .DrawerEntity ;
1419import com .aries .title .entity .TitleEntity ;
20+ import com .aries .title .util .ViewUtil ;
1521import com .aries .ui .view .title .StatusBarUtil ;
22+ import com .aries .ui .view .title .TitleBarView ;
1623import com .chad .library .adapter .base .BaseQuickAdapter ;
1724import com .chad .library .adapter .base .BaseViewHolder ;
1825
@@ -30,16 +37,24 @@ public class MainActivity extends BaseRecycleActivity<TitleEntity> {
3037
3138 @ BindView (R .id .drawer_root ) DrawerLayout drawerRoot ;
3239 @ BindView (R .id .sv_slide ) ScrollView svSlide ;
40+ @ BindView (R .id .titleBarDrawer ) TitleBarView titleBarDrawer ;
41+ @ BindView (R .id .fLayout_drawer ) FrameLayout fLayoutDrawer ;
42+ @ BindView (R .id .rv_contentDrawer ) RecyclerView mRecyclerViewDrawer ;
3343 private SwitchCompat sBtnImmersible ;
3444 private SwitchCompat sBtnLight ;
3545 private SwitchCompat sBtnLine ;
46+ private SeekBar sBarAlpha ;
47+ private TextView tvStatusAlpha ;
48+
3649 private boolean isImmersible = true ;
3750 private boolean isLight = true ;
3851 private boolean canImmersible = true ;
3952 private boolean canLight = true ;
4053
4154 private BaseQuickAdapter mAdapter ;
55+ private BaseQuickAdapter mAdapterDrawer ;
4256 protected View vHeader ;
57+ private int mAlpha = 102 ;
4358
4459 @ Override
4560 protected boolean setLoadMore () {
@@ -79,17 +94,26 @@ protected void loadData(int page) {
7994 @ Override
8095 protected void initView (Bundle bundle ) {
8196 super .initView (bundle );
97+ titleBarDrawer .setImmersible (mContext , isImmersible , isLight );
8298 vHeader = View .inflate (mContext , R .layout .layout_title_header , null );
8399 sBtnImmersible = (SwitchCompat ) vHeader .findViewById (R .id .sBtn_immersible );
84100 sBtnLight = (SwitchCompat ) vHeader .findViewById (R .id .sBtn_light );
85101 sBtnLine = (SwitchCompat ) vHeader .findViewById (R .id .sBtn_line );
86- svSlide .setFitsSystemWindows (true );//drawer视图设置
87- canImmersible = Build .VERSION .SDK_INT >= Build .VERSION_CODES .KITKAT ;
88- canLight = Build .VERSION .SDK_INT >= Build .VERSION_CODES .LOLLIPOP ;
102+ sBarAlpha = (SeekBar ) vHeader .findViewById (R .id .sBar_alpha );
103+ tvStatusAlpha = (TextView ) vHeader .findViewById (R .id .tv_statusAlpha );
89104 initView ();
105+ setDrawerList ();
90106 initData ();
91107 }
92108
109+ private void setDrawerList () {
110+ List <DrawerEntity > listDrawer = new ArrayList <>();
111+ listDrawer .add (new DrawerEntity ("AriesHoo" , "点击跳转GitHub个人主页" , "https://github.com/AriesHoo" ));
112+ listDrawer .add (new DrawerEntity ("TitleBarView" , "点击跳转GitHub项目页" , "https://github.com/AriesHoo/TitleBarView" ));
113+ listDrawer .add (new DrawerEntity ("UIWidget" , "点击跳转GitHub项目页" , "https://github.com/AriesHoo/UIWidget" ));
114+ DrawerHelper .getInstance ().initRecyclerView (mContext , mRecyclerViewDrawer , listDrawer );
115+ }
116+
93117 private void initData () {
94118 List <TitleEntity > list = new ArrayList <>();
95119 list .add (new TitleEntity ("TitleBarView与底部EditText结合" , "点击查看示例" , TitleEditActivity .class ));
@@ -101,9 +125,12 @@ private void initData() {
101125 list .add (new TitleEntity ("紫色主题" , "点击切换紫色主题" , android .R .color .holo_purple ));
102126 mAdapter .setHeaderView (vHeader );
103127 mAdapter .setNewData (list );
128+ ViewUtil .getInstance ().setViewHeight (fLayoutDrawer , (int ) (getResources ().getDimension (R .dimen .dp_drawer_header )) + titleBar .getStatusBarHeight ());
104129 }
105130
106131 private void initView () {
132+ canImmersible = Build .VERSION .SDK_INT >= Build .VERSION_CODES .KITKAT ;
133+ canLight = canImmersible ;
107134 if (!canImmersible ) {
108135 sBtnImmersible .setClickable (false );
109136 sBtnImmersible .setChecked (false );
@@ -114,19 +141,26 @@ private void initView() {
114141 if (!canLight ) {
115142 sBtnLight .setClickable (false );
116143 sBtnLight .setChecked (false );
117- sBtnLight .setText ("5.0以下不支持全透明 " );
144+ sBtnLight .setText ("4.4以下不支持全透明 " );
118145 }
146+ sBarAlpha .setMax (255 );
119147 sBtnImmersible .setOnCheckedChangeListener (new CompoundButton .OnCheckedChangeListener () {
120148 @ Override
121149 public void onCheckedChanged (CompoundButton buttonView , boolean isChecked ) {
122150 isImmersible = isChecked ;
123151 titleBar .setImmersible (mContext , isImmersible , isLight );//一般情况下使用
152+ titleBarDrawer .setImmersible (mContext , isImmersible , isLight );
124153 sBtnImmersible .setText (isChecked ? "沉浸" : "不沉浸" );
125- if (isImmersible && type > 0 ) {
126- initTitle ();
127- }
128154 if (!isImmersible ) {
129155 sBtnLight .setChecked (false );
156+ sBarAlpha .setProgress (255 );
157+ StatusBarUtil .StatusBarDarkMode (mContext );
158+ } else {
159+ if (isWhite ) {
160+ StatusBarUtil .StatusBarLightMode (mContext );
161+ } else {
162+ StatusBarUtil .StatusBarDarkMode (mContext );
163+ }
130164 }
131165 }
132166 });
@@ -136,12 +170,22 @@ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
136170 isLight = isChecked ;
137171 if (isLight ) {
138172 sBtnImmersible .setChecked (true );
173+ sBarAlpha .setProgress (0 );
174+ } else {
175+ sBarAlpha .setProgress (102 );
139176 }
140177 titleBar .setImmersible (mContext , isImmersible , isLight );//一般情况下使用
141- sBtnLight .setText (isChecked ? "5.0以上全透明" : "5.0以上半透明" );
142- if (isImmersible && type > 0 ) {
143- initTitle ();
178+ titleBarDrawer .setImmersible (mContext , isImmersible , isLight );
179+ if (!isImmersible ) {
180+ StatusBarUtil .StatusBarDarkMode (mContext );
181+ } else {
182+ if (isWhite ) {
183+ StatusBarUtil .StatusBarLightMode (mContext );
184+ } else {
185+ StatusBarUtil .StatusBarDarkMode (mContext );
186+ }
144187 }
188+ sBtnLight .setText (isChecked ? "状态栏全透明" : "状态栏半透明" );
145189 }
146190 });
147191 sBtnLine .setOnCheckedChangeListener (new CompoundButton .OnCheckedChangeListener () {
@@ -151,20 +195,47 @@ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
151195 sBtnLine .setText (isChecked ? "显示下划线" : "隐藏下划线" );
152196 }
153197 });
198+ sBarAlpha .setOnSeekBarChangeListener (new SeekBar .OnSeekBarChangeListener () {
199+ @ Override
200+ public void onProgressChanged (SeekBar seekBar , int progress , boolean fromUser ) {
201+ tvStatusAlpha .setText (progress + "" );
202+ mAlpha = progress ;
203+ sBtnImmersible .setChecked (mAlpha < 200 );
204+ sBtnLight .setChecked (mAlpha == 0 );
205+ titleBar .setStatusAlpha (mAlpha );
206+ if (mAlpha > 200 && isWhite ) {
207+ StatusBarUtil .StatusBarDarkMode (mContext );
208+ } else {
209+ if (isWhite ) {
210+ StatusBarUtil .StatusBarLightMode (mContext );
211+ }
212+ }
213+ }
214+
215+ @ Override
216+ public void onStartTrackingTouch (SeekBar seekBar ) {
217+
218+ }
219+
220+ @ Override
221+ public void onStopTrackingTouch (SeekBar seekBar ) {
222+
223+ }
224+ });
154225 drawerRoot .setDrawerListener (new DrawerLayout .SimpleDrawerListener () {
155226 @ Override
156227 public void onDrawerOpened (View drawerView ) {
157228 super .onDrawerOpened (drawerView );
158- if (type > 0 && isImmersible ) {
159- StatusBarUtil .StatusBarLightMode (mContext );
229+ if (type > 0 ) {
230+ StatusBarUtil .StatusBarDarkMode (mContext );
160231 }
161232 }
162233
163234 @ Override
164235 public void onDrawerClosed (View drawerView ) {
165236 super .onDrawerClosed (drawerView );
166- if (type > 0 && isImmersible ) {
167- if (isWhite ) {
237+ if (type > 0 ) {
238+ if (isWhite && isImmersible ) {
168239 StatusBarUtil .StatusBarLightMode (mContext );
169240 } else {
170241 StatusBarUtil .StatusBarDarkMode (mContext );
@@ -174,6 +245,9 @@ public void onDrawerClosed(View drawerView) {
174245 });
175246 if (canLight && Build .VERSION .SDK_INT < Build .VERSION_CODES .M ) {
176247 sBtnLight .setChecked (false );
248+ sBarAlpha .setProgress (StatusBarUtil .DEFAULT_STATUS_BAR_ALPHA );
249+ } else {
250+ sBarAlpha .setProgress (0 );
177251 }
178252 }
179253
@@ -188,9 +262,6 @@ protected void onItemClicked(BaseQuickAdapter<TitleEntity, BaseViewHolder> adapt
188262 titleBar .setRightTextDrawable (isWhite ? R .drawable .ic_menu : R .drawable .ic_menu_white );
189263 titleBar .setTitleMainTextColor (isWhite ? getResources ().getColor (R .color .colorTextBlack ) : Color .WHITE );
190264 titleBar .setTitleSubTextColor (isWhite ? getResources ().getColor (R .color .colorTextBlack ) : Color .WHITE );
191- if (isImmersible ) {
192- initTitle ();
193- }
194265 if (type > 0 && isImmersible ) {
195266 if (isWhite ) {
196267 StatusBarUtil .StatusBarLightMode (mContext );
0 commit comments