9
9
import android .view .View .OnClickListener ;
10
10
import android .view .ViewGroup ;
11
11
import android .view .ViewGroup .LayoutParams ;
12
+ import android .view .Window ;
12
13
import android .widget .AdapterView ;
13
14
import android .widget .ArrayAdapter ;
14
15
import android .widget .ImageView ;
15
- import android .widget .LinearLayout ;
16
16
import android .widget .ListView ;
17
17
import android .widget .RelativeLayout ;
18
18
import android .widget .TextView ;
19
19
20
- import com .actionbarsherlock .ActionBarSherlockCompat ;
21
20
import com .actionbarsherlock .app .SherlockFragmentActivity ;
22
21
import com .slidingmenu .lib .R ;
23
22
import com .slidingmenu .lib .SlidingMenu ;
24
23
25
24
public class SlidingFragmentActivity extends SherlockFragmentActivity implements SlidingActivityBase {
26
25
27
26
private SlidingMenu mSlidingMenu ;
28
- private View mMainLayout ;
27
+ private ViewGroup mContentView ;
29
28
private boolean mContentViewCalled = true ;
30
29
private boolean mBehindContentViewCalled = true ;
31
30
private SlidingMenuList mMenuList ;
32
31
33
32
public void onCreate (Bundle savedInstanceState ) {
34
33
super .onCreate (savedInstanceState );
35
- super .setContentView (R .layout .slidingmenumain );
36
- mSlidingMenu = (SlidingMenu ) super .findViewById (R .id .slidingmenulayout );
37
- // generate the ActionBar inside an arbitrary RelativeLayout
38
- RelativeLayout mainView = new RelativeLayout (this );
39
- ((ActionBarSherlockCompat )getSherlock ()).installDecor (mainView );
40
- mSlidingMenu .setViewAbove (mainView );
41
- mMainLayout = super .findViewById (R .id .slidingmenulayout );
34
+ // unregister the current content view
35
+ getWindow ().getDecorView ().findViewById (android .R .id .content ).setId (View .NO_ID );
36
+ // register a new content view
37
+ mContentView = new RelativeLayout (this );
38
+ mContentView .setId (android .R .id .content );
39
+ // set up the SlidingMenu
40
+ mSlidingMenu = (SlidingMenu ) getLayoutInflater ().inflate (R .layout .slidingmenumain , null );
41
+ mSlidingMenu .setViewAbove (mContentView );
42
+ super .setContentView (mSlidingMenu );
42
43
}
43
44
44
45
public void onPostCreate (Bundle savedInstanceState ) {
@@ -47,9 +48,20 @@ public void onPostCreate(Bundle savedInstanceState) {
47
48
throw new IllegalStateException ("Both setContentView and " +
48
49
"setBehindContentView must be called in onCreate." );
49
50
}
50
- mSlidingMenu .setStatic (isStatic ());
51
51
}
52
52
53
+ // public Window getWindow() {
54
+ // if (mWindowHelper == null) {
55
+ // return super.getWindow();
56
+ // } else {
57
+ // return mWindowHelper;
58
+ // }
59
+ // }
60
+ //
61
+ // private Window getWindowInternal() {
62
+ // return super.getWindow();
63
+ // }
64
+
53
65
@ Override
54
66
public void setContentView (int id ) {
55
67
setContentView (getLayoutInflater ().inflate (id , null ));
@@ -63,7 +75,7 @@ public void setContentView(View v, LayoutParams params) {
63
75
if (!mContentViewCalled ) {
64
76
mContentViewCalled = true ;
65
77
}
66
- getSherlock (). setContentView (v );
78
+ mContentView . addView (v );
67
79
}
68
80
69
81
public void setBehindContentView (int id ) {
@@ -81,10 +93,6 @@ public void setBehindContentView(View v, LayoutParams params) {
81
93
mSlidingMenu .setViewBehind (v );
82
94
}
83
95
84
- public boolean isStatic () {
85
- return mMainLayout instanceof LinearLayout ;
86
- }
87
-
88
96
public SlidingMenu getSlidingMenu () {
89
97
return mSlidingMenu ;
90
98
}
@@ -104,12 +112,10 @@ public void toggle() {
104
112
}
105
113
106
114
public void showAbove () {
107
- if (isStatic ()) return ;
108
115
mSlidingMenu .showAbove ();
109
116
}
110
117
111
118
public void showBehind () {
112
- if (isStatic ()) return ;
113
119
mSlidingMenu .showBehind ();
114
120
}
115
121
0 commit comments