Skip to content

Commit 01d82d8

Browse files
committed
user drawerlayout
1 parent 661cb28 commit 01d82d8

15 files changed

+72
-3878
lines changed

app/src/main/java/com/brian/codeblog/activity/MainTabActivity.java

Lines changed: 34 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
import android.os.Bundle;
66
import android.support.design.widget.TabLayout;
77
import android.support.v4.view.ViewPager;
8+
import android.support.v4.widget.DrawerLayout;
89
import android.view.KeyEvent;
910
import android.view.View;
1011
import android.view.View.OnClickListener;
12+
import android.widget.FrameLayout;
1113
import android.widget.ImageView;
1214

1315
import com.brian.codeblog.Config;
@@ -16,17 +18,12 @@
1618
import com.brian.codeblog.datacenter.preference.SettingPreference;
1719
import com.brian.codeblog.manager.PushManager;
1820
import com.brian.codeblog.manager.ShareManager;
19-
import com.brian.codeblog.update.UpdateManager;
2021
import com.brian.codeblog.manager.UsageStatsManager;
21-
import com.brian.common.utils.LogUtil;
22+
import com.brian.codeblog.update.UpdateManager;
2223
import com.brian.common.utils.TimeUtil;
2324
import com.brian.common.utils.ToastUtil;
2425
import com.brian.common.view.DrawerArrowDrawable;
2526
import 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;
3027
import com.umeng.analytics.MobclickAgent;
3128
import com.umeng.onlineconfig.OnlineConfigAgent;
3229
import com.umeng.onlineconfig.OnlineConfigLog;
@@ -43,13 +40,14 @@
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

app/src/main/java/com/brian/codeblog/activity/SidePageFragment.java renamed to app/src/main/java/com/brian/codeblog/activity/SlideMenuLayout.java

Lines changed: 22 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11

22
package com.brian.codeblog.activity;
33

4+
import android.app.Activity;
45
import android.app.AlertDialog;
6+
import android.content.Context;
57
import android.content.DialogInterface;
6-
import android.content.Intent;
7-
import android.os.Bundle;
8-
import android.support.annotation.Nullable;
9-
import android.support.v4.app.Fragment;
108
import android.text.TextUtils;
9+
import android.util.AttributeSet;
1110
import android.view.LayoutInflater;
1211
import android.view.View;
1312
import android.view.View.OnClickListener;
14-
import android.view.ViewGroup;
13+
import android.widget.FrameLayout;
1514
import android.widget.TextView;
1615

1716
import com.brian.codeblog.Env;
@@ -25,7 +24,6 @@
2524
import com.brian.common.view.CircleImageView;
2625
import com.brian.csdnblog.R;
2726
import com.squareup.picasso.Picasso;
28-
import com.umeng.analytics.MobclickAgent;
2927

3028
import org.greenrobot.eventbus.EventBus;
3129
import org.greenrobot.eventbus.Subscribe;
@@ -36,7 +34,7 @@
3634
/**
3735
* 侧边栏
3836
*/
39-
public class SidePageFragment extends Fragment implements OnClickListener {
37+
public class SlideMenuLayout extends FrameLayout implements OnClickListener {
4038

4139
@BindView(R.id.bloger) View mBlogerLy; // 博主
4240
@BindView(R.id.bloger_head) CircleImageView mBlogerHeadView; // 博主头像
@@ -50,25 +48,19 @@ public class SidePageFragment extends Fragment implements OnClickListener {
5048
@BindView(R.id.chat) View viewChat;
5149
@BindView(R.id.tv_select_type) TextView mSelectTypeView;
5250

53-
@Override
54-
public void onCreate(@Nullable Bundle savedInstanceState) {
55-
super.onCreate(savedInstanceState);
51+
public SlideMenuLayout(Context context) {
52+
this(context, null, 0);
5653
}
5754

58-
@Override
59-
public void onActivityCreated(Bundle savedInstanceState) {
60-
super.onActivityCreated(savedInstanceState);
61-
EventBus.getDefault().register(this);
62-
LogUtil.i("onActivityCreated");
55+
public SlideMenuLayout(Context context, AttributeSet attrs) {
56+
this(context, attrs, 0);
6357
}
6458

65-
@Override
66-
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
67-
View view = inflater.inflate(R.layout.slide_menu, null);
59+
public SlideMenuLayout(Context context, AttributeSet attrs, int defStyleAttr) {
60+
super(context, attrs, defStyleAttr);
61+
View view = LayoutInflater.from(BaseActivity.getTopActivity()).inflate(R.layout.slide_menu, this);
6862
ButterKnife.bind(this, view);
6963
initUI();
70-
71-
return view;
7264
}
7365

7466
/**
@@ -130,7 +122,7 @@ public void onClick(View view) {
130122
break;
131123
case R.id.select_article_type: // 设置文章类型
132124
UsageStatsManager.sendUsageData(UsageStatsManager.MENU_LIST, "articletype");
133-
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
125+
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
134126
builder.setTitle("选择文章类型");
135127

136128
// 设置一个下拉的列表选择项
@@ -150,29 +142,15 @@ public void onClick(DialogInterface dialog, int which) {
150142
}
151143

152144
@Override
153-
public void onActivityResult(int requestCode, int resultCode, Intent data) {
154-
super.onActivityResult(requestCode, resultCode, data);
155-
LogUtil.i("onActivityResult");
156-
}
157-
158-
@Override
159-
public void onResume() {
160-
super.onResume();
161-
LogUtil.i("onResume");
162-
MobclickAgent.onPageStart(this.getClass().getName()); //统计页面
163-
}
164-
165-
@Override
166-
public void onPause() {
167-
super.onPause();
168-
LogUtil.i("onPause");
169-
MobclickAgent.onPageEnd(this.getClass().getName());
145+
protected void onDetachedFromWindow() {
146+
EventBus.getDefault().unregister(this);
147+
super.onDetachedFromWindow();
170148
}
171149

172150
@Override
173-
public void onDestroy() {
174-
EventBus.getDefault().unregister(this);
175-
super.onDestroy();
151+
protected void onAttachedToWindow() {
152+
super.onAttachedToWindow();
153+
EventBus.getDefault().register(this);
176154
}
177155

178156
/**
@@ -189,4 +167,7 @@ public void onEventMainThread(CurrBlogerEvent event) {
189167
}
190168
}
191169

170+
public Activity getActivity() {
171+
return BaseActivity.getTopActivity();
172+
}
192173
}

app/src/main/java/com/jeremyfeinstein/slidingmenu/lib/CanvasTransformerBuilder.java

Lines changed: 0 additions & 94 deletions
This file was deleted.

0 commit comments

Comments
 (0)