55import android .os .Bundle ;
66import android .support .design .widget .TabLayout ;
77import android .support .v4 .view .ViewPager ;
8+ import android .support .v4 .widget .DrawerLayout ;
89import android .view .KeyEvent ;
910import android .view .View ;
1011import android .view .View .OnClickListener ;
12+ import android .widget .FrameLayout ;
1113import android .widget .ImageView ;
1214
1315import com .brian .codeblog .Config ;
1618import com .brian .codeblog .datacenter .preference .SettingPreference ;
1719import com .brian .codeblog .manager .PushManager ;
1820import com .brian .codeblog .manager .ShareManager ;
19- import com .brian .codeblog .update .UpdateManager ;
2021import com .brian .codeblog .manager .UsageStatsManager ;
21- import com .brian .common . utils . LogUtil ;
22+ import com .brian .codeblog . update . UpdateManager ;
2223import com .brian .common .utils .TimeUtil ;
2324import com .brian .common .utils .ToastUtil ;
2425import com .brian .common .view .DrawerArrowDrawable ;
2526import com .brian .csdnblog .R ;
26- import com .jeremyfeinstein .slidingmenu .lib .SlidingMenu ;
27- import com .jeremyfeinstein .slidingmenu .lib .SlidingMenu .OnCloseListener ;
28- import com .jeremyfeinstein .slidingmenu .lib .SlidingMenu .OnOpenListener ;
29- import com .jeremyfeinstein .slidingmenu .lib .app .SlidingFragmentActivity ;
3027import com .umeng .analytics .MobclickAgent ;
3128import com .umeng .onlineconfig .OnlineConfigAgent ;
3229import com .umeng .onlineconfig .OnlineConfigLog ;
4340/**
4441 * 主界面
4542 */
46- public class MainTabActivity extends SlidingFragmentActivity {
47-
43+ public class MainTabActivity extends BaseActivity {
4844 private static final String TAG = MainTabActivity .class .getSimpleName ();
4945
5046 @ BindView (R .id .left_menu ) ImageView mBtnMenu ;
5147 @ BindView (R .id .right_search ) ImageView mBtnSearch ;
5248 @ BindView (R .id .tabs ) TabLayout mTabLayout ;
49+ @ BindView (R .id .drawer_layout ) DrawerLayout mDrawerLayout ;
50+ @ BindView (R .id .drawer_menu ) FrameLayout mDrawerContainer ;
5351 // 主界面的页面切换
5452 @ BindView (R .id .pager ) ViewPager mViewpager = null ;
5553
@@ -94,8 +92,9 @@ private void initUI() {
9492 mTabLayout .setTabMode (TabLayout .MODE_SCROLLABLE );//设置滑动模式
9593 mTabLayout .setupWithViewPager (mViewpager );
9694
97- // 初始化侧滑栏
98- initSlidingMenu ();
95+ mArrowDrawable = new DrawerArrowDrawable (this );
96+ mArrowDrawable .setColor (getResources ().getColor (R .color .white ));
97+ mBtnMenu .setImageDrawable (mArrowDrawable );
9998 }
10099
101100 private void recoveryUI () {
@@ -110,58 +109,23 @@ private void recoveryUI() {
110109 UsageStatsManager .sendUsageData (UsageStatsManager .USAGE_MAIN_TAB , mTabAdapter .getPageTitle (initPosition ));
111110 }
112111
113- private void initSlidingMenu () {
114- // 设置左侧滑动菜单
115- setBehindContentView (R .layout .menu_frame_left );
116- getSupportFragmentManager ().beginTransaction ().replace (R .id .menu_frame , new SidePageFragment ()).commit ();
117-
118- // 实例化滑动菜单对象
119- SlidingMenu sm = getSlidingMenu ();
120- sm .setMode (SlidingMenu .LEFT );// 设置可以左右滑动菜单
121- sm .setShadowWidthRes (R .dimen .shadow_width );// 设置滑动阴影的宽度
122- sm .setShadowDrawable (null );// 设置滑动菜单阴影的图像资源
123- sm .setBehindOffsetRes (R .dimen .slidingmenu_offset );// 设置左侧栏展开时与右边框的margin
124- sm .setTouchModeAbove (SlidingMenu .TOUCHMODE_MARGIN );// 设置触摸屏幕的模式,从边上滑动才有效
125- sm .setFadeDegree (0.8f );// 设置渐入渐出效果的值,1.0为全黑
126- sm .setBehindScrollScale (0.5f );// 设置下方视图的在滚动时的缩放比例,1.0为从左往右推过来(无覆盖效果)
127- sm .setOnOpenListener (new OnOpenListener () {
128- @ Override
129- public void onOpen () {
130- LogUtil .i (TAG , "OnOpenListener" );
131-
132- UsageStatsManager .sendUsageData (UsageStatsManager .USAGE_SLIDEMENU_SHOW );
133- }
134- });
135-
136- sm .setOnCloseListener (new OnCloseListener () {
137- @ Override
138- public void onClose () {
139- LogUtil .i (TAG , "onClose" );
140- }
141- });
142-
143- mArrowDrawable = new DrawerArrowDrawable (this );
144- mArrowDrawable .setColor (getResources ().getColor (R .color .white ));
145- mBtnMenu .setImageDrawable (mArrowDrawable );
146- sm .setOnScrollListener (new SlidingMenu .OnScrollListener () {
147-
148- @ Override
149- public void onScroll (float percentOpen ) {
150- mArrowDrawable .setProgress (percentOpen );
151- }
152- });
153- }
154-
155112 @ Override
156113 protected void onActivityResult (int requestCode , int resultCode , Intent data ) {
157114 ShareManager .getInstance ().onActivityResult (requestCode , resultCode , data );
158115 }
159116
160117 private void initListener () {
118+ mDrawerLayout .addDrawerListener (new DrawerLayout .SimpleDrawerListener () {
119+ @ Override
120+ public void onDrawerSlide (View drawerView , float slideOffset ) {
121+ mArrowDrawable .setProgress (slideOffset );
122+ }
123+ });
124+
161125 mBtnMenu .setOnClickListener (new OnClickListener () {
162126 @ Override
163127 public void onClick (View v ) {
164- getSlidingMenu (). toggle ( true );
128+ toggleMenu ( );
165129 }
166130 });
167131 mBtnSearch .setOnClickListener (new OnClickListener () {
@@ -187,24 +151,30 @@ public void onPageScrollStateChanged(int state) {
187151 });
188152 }
189153
154+ private void toggleMenu () {
155+ if (mDrawerLayout .isDrawerOpen (mDrawerContainer )) {
156+ mDrawerLayout .closeDrawer (mDrawerContainer );
157+ } else {
158+ mDrawerLayout .openDrawer (mDrawerContainer );
159+ }
160+ }
161+
190162 @ Override
191163 public boolean onKeyDown (int keyCode , KeyEvent event ) {
192164 if (keyCode == KeyEvent .KEYCODE_BACK ) {
193-
194- if (getSlidingMenu ().isMenuShowing ()) {// 左侧栏已展开
195- getSlidingMenu ().toggle (true );
165+ if (mDrawerLayout .isDrawerOpen (mDrawerContainer )) {
166+ mDrawerLayout .closeDrawer (mDrawerContainer );
167+ return true ;
168+ }
169+ boolean isRunInBack = SettingPreference .getInstance ().getRunInBackEnable ();
170+ if (isRunInBack ) {
171+ moveTaskToBack (true );
196172 } else {
197-
198- boolean isRunInBack = SettingPreference .getInstance ().getRunInBackEnable ();
199- if (isRunInBack ) {
200- moveTaskToBack (true );
201- } else {
202- finish ();
203- }
173+ finish ();
204174 }
205175 return true ;
206176 } else if (keyCode == KeyEvent .KEYCODE_MENU ) {
207- getSlidingMenu (). toggle ( true );
177+ toggleMenu ( );
208178 return true ;
209179 }
210180
0 commit comments