Skip to content

Commit 8088844

Browse files
author
jfeinstein10
committed
Little bug fixes. BehindView still extends too far
1 parent 14e5d33 commit 8088844

File tree

8 files changed

+59
-44
lines changed

8 files changed

+59
-44
lines changed

example/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<application
1212
android:icon="@drawable/ic_launcher"
1313
android:label="@string/app_name"
14-
android:theme="@style/Theme.Sherlock.Light.DarkActionBar" >
14+
android:theme="@style/Theme.Sherlock.Light" >
1515
<activity
1616
android:name=".ExampleActivity"
1717
android:label="@string/app_name"

example/src/com/slidingmenu/example/ExampleActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public void onCreate(Bundle savedInstanceState) {
4040
getSlidingMenu().setShadowWidthRes(R.dimen.shadow_width);
4141
getSlidingMenu().setShadowDrawable(R.drawable.shadow);
4242
getSlidingMenu().setBehindOffsetRes(R.dimen.actionbar_home_width);
43-
getSlidingMenu().setBehindScrollScale(0.5f);
43+
getSlidingMenu().setBehindScrollScale(0.25f);
4444

4545
// customize the ActionBar
4646
ActionBar actionBar = getSupportActionBar();
Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,36 @@
11
package com.slidingmenu.example;
22

33
import android.os.Bundle;
4+
import android.view.View;
45

5-
import com.actionbarsherlock.view.Menu;
6-
import com.actionbarsherlock.view.MenuItem;
76
import com.slidingmenu.lib.app.SlidingActivity;
87

98
public class ExampleSlidingActivity extends SlidingActivity {
109

1110
public void onCreate(Bundle savedInstanceState) {
1211
super.onCreate(savedInstanceState);
12+
View v = getWindow().getDecorView();
13+
this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
14+
this.setSlidingActionBarEnabled(true);
1315
setContentView(R.layout.main);
1416
setBehindContentView(R.layout.main2);
1517
getSlidingMenu().setBehindOffsetRes(R.dimen.actionbar_home_width);
18+
v = getWindow().getDecorView();
1619
}
1720

18-
public boolean onOptionsItemSelected(MenuItem item) {
19-
switch (item.getItemId()) {
20-
case android.R.id.home:
21-
toggle();
22-
return true;
23-
}
24-
return super.onOptionsItemSelected(item);
25-
}
26-
27-
@Override
28-
public boolean onCreateOptionsMenu(Menu menu) {
29-
this.getSupportMenuInflater().inflate(R.menu.main, menu);
30-
return true;
31-
}
21+
// public boolean onOptionsItemSelected(MenuItem item) {
22+
// switch (item.getItemId()) {
23+
// case android.R.id.home:
24+
// toggle();
25+
// return true;
26+
// }
27+
// return super.onOptionsItemSelected(item);
28+
// }
29+
//
30+
// @Override
31+
// public boolean onCreateOptionsMenu(Menu menu) {
32+
// this.getSupportMenuInflater().inflate(R.menu.main, menu);
33+
// return true;
34+
// }
3235

3336
}

library/project.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@
1313
# Project target.
1414
target=Google Inc.:Google APIs:15
1515
android.library=true
16-
android.library.reference.1=../ActionBarSherlockSlidingMenu
16+
android.library.reference.1=../ABS

library/src/com/slidingmenu/lib/SlidingMenu.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ public SlidingMenu(Context context, AttributeSet attrs, int defStyle) {
5757
setTouchModeAbove(touchModeAbove);
5858
int touchModeBehind = ta.getInt(R.styleable.SlidingMenu_behindTouchMode, TOUCHMODE_MARGIN);
5959
setTouchModeBehind(touchModeBehind);
60-
// set the offset and scroll scale if defined in xml
6160
int offsetBehind = (int) ta.getDimension(R.styleable.SlidingMenu_behindOffset, 0);
6261
setBehindOffset(offsetBehind);
6362
float scrollOffsetBehind = ta.getFloat(R.styleable.SlidingMenu_behindScrollScale, 0.25f);
@@ -72,7 +71,7 @@ public SlidingMenu(Context context, AttributeSet attrs, int defStyle) {
7271
setFadeEnabled(fadeEnabled);
7372
float fadeDeg = ta.getFloat(R.styleable.SlidingMenu_behindFadeDegree, 0.5f);
7473
setFadeDegree(fadeDeg);
75-
showAbove();
74+
// showAbove();
7675
}
7776

7877
public void setViewAbove(int res) {

library/src/com/slidingmenu/lib/app/SlidingActivity.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package com.slidingmenu.lib.app;
22

3-
import android.app.Activity;
43
import android.os.Bundle;
54
import android.view.KeyEvent;
65
import android.view.View;
76
import android.view.ViewGroup.LayoutParams;
87

8+
import com.actionbarsherlock.app.SherlockActivity;
99
import com.slidingmenu.lib.SlidingMenu;
1010

11-
public class SlidingActivity extends Activity implements SlidingActivityBase {
11+
public class SlidingActivity extends SherlockActivity implements SlidingActivityBase {
1212

1313
private SlidingActivityHelper mHelper;
1414

@@ -24,6 +24,9 @@ public void onPostCreate(Bundle savedInstanceState) {
2424
}
2525

2626
public View findViewById(int id) {
27+
View v = super.findViewById(id);
28+
if (v != null)
29+
return v;
2730
return mHelper.findViewById(id);
2831
}
2932

@@ -32,19 +35,20 @@ public void setContentView(int id) {
3235
}
3336

3437
public void setContentView(View v) {
35-
setContentView(v, null);
38+
setContentView(v, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
3639
}
3740

3841
public void setContentView(View v, LayoutParams params) {
39-
mHelper.setAboveContentView(v, params);
42+
super.setContentView(v, params);
43+
mHelper.registerAboveContentView(v, params);
4044
}
4145

4246
public void setBehindContentView(int id) {
4347
setBehindContentView(getLayoutInflater().inflate(id, null));
4448
}
4549

4650
public void setBehindContentView(View v) {
47-
setBehindContentView(v, null);
51+
setBehindContentView(v, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
4852
}
4953

5054
public void setBehindContentView(View v, LayoutParams params) {

library/src/com/slidingmenu/lib/app/SlidingActivityHelper.java

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public class SlidingActivityHelper {
1616

1717
private SlidingMenu mSlidingMenu;
1818
private View mViewAbove;
19+
private boolean mBroadcasting = false;
1920

2021
private boolean mViewBehindSet = false;
2122
private boolean mOnPostCreateCalled = false;
@@ -36,19 +37,22 @@ public void onPostCreate(Bundle savedInstanceState) {
3637
}
3738
mOnPostCreateCalled = true;
3839
if (mEnableSlide) {
39-
mActivity.getWindow().setContentView(mViewAbove);
4040
ViewGroup decor = (ViewGroup) mActivity.getWindow().getDecorView();
4141
LinearLayout newDecor = new LinearLayout(mActivity);
4242
while (decor.getChildCount() > 0) {
4343
View child = decor.getChildAt(0);
4444
decor.removeView(child);
4545
newDecor.addView(child);
4646
}
47-
decor.addView(mSlidingMenu, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
47+
decor.addView(mSlidingMenu, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
4848
mSlidingMenu.setViewAbove(newDecor);
4949
} else {
50+
ViewGroup parent = (ViewGroup) mViewAbove.getParent();
51+
if (parent != null) {
52+
parent.removeView(mViewAbove);
53+
}
5054
mSlidingMenu.setViewAbove(mViewAbove);
51-
mActivity.getWindow().setContentView(mSlidingMenu);
55+
mActivity.setContentView(mSlidingMenu);
5256
}
5357
}
5458

@@ -65,16 +69,17 @@ public View findViewById(int id) {
6569
if (v != null)
6670
return v;
6771
}
68-
if (mViewAbove != null) {
69-
v = mViewAbove.findViewById(id);
70-
if (v != null)
71-
return v;
72-
}
7372
return null;
7473
}
7574

76-
public void setAboveContentView(View v, LayoutParams params) {
77-
mViewAbove = v;
75+
public void registerAboveContentView(View v, LayoutParams params) {
76+
if (!mBroadcasting)
77+
mViewAbove = v;
78+
}
79+
80+
public void setContentView(View v) {
81+
mBroadcasting = true;
82+
mActivity.setContentView(v);
7883
}
7984

8085
public void setBehindContentView(View v, LayoutParams params) {

library/src/com/slidingmenu/lib/app/SlidingFragmentActivity.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package com.slidingmenu.lib.app;
22

33
import android.os.Bundle;
4-
import android.support.v4.app.FragmentActivity;
54
import android.view.KeyEvent;
65
import android.view.View;
76
import android.view.ViewGroup.LayoutParams;
87

8+
import com.actionbarsherlock.app.SherlockFragmentActivity;
99
import com.slidingmenu.lib.SlidingMenu;
1010

11-
public class SlidingFragmentActivity extends FragmentActivity implements SlidingActivityBase {
11+
public class SlidingFragmentActivity extends SherlockFragmentActivity implements SlidingActivityBase {
1212

1313
private SlidingActivityHelper mHelper;
1414

@@ -24,27 +24,31 @@ public void onPostCreate(Bundle savedInstanceState) {
2424
}
2525

2626
public View findViewById(int id) {
27+
View v = super.findViewById(id);
28+
if (v != null)
29+
return v;
2730
return mHelper.findViewById(id);
2831
}
2932

3033
public void setContentView(int id) {
31-
setBehindContentView(getLayoutInflater().inflate(id, null));
34+
setContentView(getLayoutInflater().inflate(id, null));
3235
}
3336

3437
public void setContentView(View v) {
35-
setBehindContentView(v, null);
38+
setContentView(v, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
3639
}
3740

3841
public void setContentView(View v, LayoutParams params) {
39-
mHelper.setAboveContentView(v, params);
42+
super.setContentView(v, params);
43+
mHelper.registerAboveContentView(v, params);
4044
}
4145

4246
public void setBehindContentView(int id) {
4347
setBehindContentView(getLayoutInflater().inflate(id, null));
4448
}
4549

4650
public void setBehindContentView(View v) {
47-
setBehindContentView(v, null);
51+
setBehindContentView(v, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
4852
}
4953

5054
public void setBehindContentView(View v, LayoutParams params) {
@@ -66,11 +70,11 @@ public void showAbove() {
6670
public void showBehind() {
6771
mHelper.showBehind();
6872
}
69-
73+
7074
public void setSlidingActionBarEnabled(boolean b) {
7175
mHelper.setSlidingActionBarEnabled(b);
7276
}
73-
77+
7478
@Override
7579
public boolean onKeyDown(int keyCode, KeyEvent event) {
7680
boolean b = mHelper.onKeyDown(keyCode, event);

0 commit comments

Comments
 (0)