Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Slidingright #561

Open
wants to merge 19 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions example/res/drawable/shadow_right.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

<gradient
android:endColor="#00000000"
android:centerColor="#11000000"
android:startColor="#33000000" />

</shape>
14 changes: 14 additions & 0 deletions example/res/layout/test.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<ImageView
android:id="@+id/test_image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#006699"
android:src="@drawable/ic_launcher" />

</LinearLayout>
61 changes: 46 additions & 15 deletions example/src/com/slidingmenu/example/BaseActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
import android.support.v4.app.ListFragment;
import android.support.v4.view.ViewPager;
import android.view.MenuItem;
import android.widget.FrameLayout;
import android.widget.LinearLayout;

import com.slidingmenu.lib.SlidingMenu;
import com.slidingmenu.lib.app.SlidingFragmentActivity;
Expand All @@ -20,46 +22,73 @@ public class BaseActivity extends SlidingFragmentActivity {

private int mTitleRes;
protected ListFragment mFrag;

public BaseActivity(int titleRes) {
mTitleRes = titleRes;
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setTitle(mTitleRes);

// set the Behind View
setBehindContentView(R.layout.menu_frame);
FragmentTransaction t = this.getSupportFragmentManager().beginTransaction();
mFrag = new SampleListFragment();
t.replace(R.id.menu_frame, mFrag);
t.commit();
setTitle(mTitleRes);

addLeft();

// customize the SlidingMenu
SlidingMenu sm = getSlidingMenu();
sm.setShadowWidthRes(R.dimen.shadow_width);
sm.setShadowDrawable(R.drawable.shadow);
sm.setBehindOffsetRes(R.dimen.actionbar_home_width);

// customize the ActionBar
if (Build.VERSION.SDK_INT >= 11) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
}

private void addLeft() {
FrameLayout left = new FrameLayout(this);
left.setId("LEFT".hashCode());
setBehindLeftContentView(left);
getSupportFragmentManager()
.beginTransaction()
.replace("LEFT".hashCode(), new SampleListFragment())
.commit();

SlidingMenu sm = getSlidingMenu();
sm.setShadowDrawable(R.drawable.shadow, SlidingMenu.LEFT);
sm.setBehindOffsetRes(R.dimen.actionbar_home_width, SlidingMenu.LEFT);
}

private void addRight() {
FrameLayout right = new FrameLayout(this);
right.setId("RIGHT".hashCode());
this.setBehindRightContentView(right);
getSupportFragmentManager()
.beginTransaction()
.replace("RIGHT".hashCode(), new SampleListFragment())
.commit();

SlidingMenu sm = getSlidingMenu();
sm.setShadowDrawable(R.drawable.shadow_right, SlidingMenu.RIGHT);
sm.setBehindOffsetRes(R.dimen.actionbar_home_width, SlidingMenu.RIGHT);
}

// @Override
// public void onResume() {
// super.onResume();
// getSlidingMenu().showAbove();
// }

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
toggle();
toggle(SlidingMenu.LEFT);
return true;
}
return super.onOptionsItemSelected(item);
}

public class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> mFragments = new ArrayList<Fragment>();
private ViewPager mPager;
Expand All @@ -68,6 +97,8 @@ public PagerAdapter(FragmentManager fm, ViewPager vp) {
super(fm);
mPager = vp;
mPager.setAdapter(this);
for (int i = 0; i < 3; i++)
addTab(new SampleListFragment());
}

public void addTab(Fragment frag) {
Expand All @@ -84,5 +115,5 @@ public int getCount() {
return mFragments.size();
}
}

}
4 changes: 2 additions & 2 deletions example/src/com/slidingmenu/example/CustomAnimation.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ public void onCreate(Bundle savedInstanceState) {

SlidingMenu sm = getSlidingMenu();
setSlidingActionBarEnabled(true);
sm.setBehindScrollScale(0.0f);
sm.setBehindCanvasTransformer(mTransformer);
sm.setBehindScrollScale(0.0f, SlidingMenu.BOTH);
sm.setBehindCanvasTransformer(mTransformer, SlidingMenu.BOTH);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import android.os.Bundle;
import android.view.animation.Interpolator;

import com.slidingmenu.lib.SlidingMenu;
import com.slidingmenu.lib.SlidingMenu.CanvasTransformer;

public class CustomRotateAnimation extends CustomAnimation {
Expand Down Expand Up @@ -31,7 +32,7 @@ public void transformCanvas(Canvas canvas, float percentOpen) {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSlidingMenu().setBehindScrollScale(1);
getSlidingMenu().setBehindScrollScale(1, SlidingMenu.BOTH);
}

}
22 changes: 11 additions & 11 deletions example/src/com/slidingmenu/example/PropertiesActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ public class PropertiesActivity extends BaseActivity {
public PropertiesActivity() {
super(R.string.properties);
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setSlidingActionBarEnabled(true);

setContentView(R.layout.properties);

// touch mode stuff
RadioGroup touchAbove = (RadioGroup) findViewById(R.id.touch_above);
touchAbove.check(R.id.touch_above_margin);
Expand All @@ -40,7 +40,7 @@ public void onCheckedChanged(RadioGroup group, int checkedId) {
}
}
});

RadioGroup touchBehind = (RadioGroup) findViewById(R.id.touch_behind);
touchBehind.check(R.id.touch_behind_margin);
touchBehind.setOnCheckedChangeListener(new OnCheckedChangeListener() {
Expand All @@ -57,7 +57,7 @@ public void onCheckedChanged(RadioGroup group, int checkedId) {
}
});


// scroll scale stuff
SeekBar scrollScale = (SeekBar) findViewById(R.id.scroll_scale);
scrollScale.setMax(1000);
Expand All @@ -70,11 +70,11 @@ public void onProgressChanged(SeekBar seekBar, int progress,
public void onStartTrackingTouch(SeekBar seekBar) { }
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
getSlidingMenu().setBehindScrollScale((float) seekBar.getProgress()/seekBar.getMax());
getSlidingMenu().setBehindScrollScale((float) seekBar.getProgress()/seekBar.getMax(), SlidingMenu.BOTH);
}
});


// behind width stuff
SeekBar behindWidth = (SeekBar) findViewById(R.id.behind_width);
behindWidth.setMax(1000);
Expand All @@ -88,11 +88,11 @@ public void onStartTrackingTouch(SeekBar seekBar) { }
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
float percent = (float) seekBar.getProgress()/seekBar.getMax();
getSlidingMenu().setBehindWidth((int) (percent * getSlidingMenu().getWidth()));
getSlidingMenu().setBehindWidth((int) (percent * getSlidingMenu().getWidth()), SlidingMenu.BOTH);
}
});


// fading stuff
CheckBox fadeEnabled = (CheckBox) findViewById(R.id.fade_enabled);
fadeEnabled.setChecked(true);
Expand Down
19 changes: 14 additions & 5 deletions example/src/com/slidingmenu/example/SlidingTitleBar.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package com.slidingmenu.example;

import com.slidingmenu.lib.SlidingMenu;

import android.os.Bundle;
import android.support.v4.view.ViewPager;


public class SlidingTitleBar extends BaseActivity {
Expand All @@ -14,11 +17,17 @@ public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// set the Above View
setContentView(R.layout.content_frame);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_frame, new SampleListFragment())
.commit();
// setContentView(R.layout.content_frame);
// getSupportFragmentManager()
// .beginTransaction()
// .replace(R.id.content_frame, new SampleListFragment())
// .commit();

ViewPager vp = new ViewPager(this);
vp.setId("VP".hashCode());
vp.setAdapter(new PagerAdapter(getSupportFragmentManager(), vp));
setContentView(vp);
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

setSlidingActionBarEnabled(true);
}
Expand Down
16 changes: 12 additions & 4 deletions library/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,18 @@
<application>
<uses-library android:name="com.google.android.maps" />

<activity android:name=".SlidingMenuActivity" />
<activity android:name=".SlidingFragmentActivity" />
<activity android:name=".SlidingListActivity" />
<activity android:name=".SlidingPreferenceActivity" />
<activity
android:name=".SlidingMenuActivity"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".SlidingFragmentActivity"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".SlidingListActivity"
android:windowSoftInputMode="adjustPan" />
<activity
android:name=".SlidingPreferenceActivity"
android:windowSoftInputMode="adjustPan" />
</application>

</manifest>
15 changes: 15 additions & 0 deletions library/res/drawable/custom_up.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<solid android:color="@android:color/white" />

<size
android:height="10dp"
android:width="10dp" />

<padding
android:left="10dp"
android:right="10dp" />

</shape>
12 changes: 9 additions & 3 deletions library/res/values/attrs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,22 @@
<resources>

<declare-styleable name="SlidingMenu">
<attr name="mode">
<enum name="left" value="4" />
<enum name="right" value="5" />
<enum name="both" value="6" />
</attr>
<attr name="viewAbove" format="reference" />
<attr name="viewBehind" format="reference" />
<attr name="viewBehindLeft" format="reference" />
<attr name="viewBehindRight" format="reference" />
<attr name="behindOffset" format="dimension" />
<attr name="behindWidth" format="dimension" />
<attr name="behindScrollScale" format="float" />
<attr name="aboveTouchMode">
<attr name="touchModeAbove">
<enum name="margin" value="0" />
<enum name="fullscreen" value="1" />
</attr>
<attr name="behindTouchMode">
<attr name="touchModeBehind">
<enum name="margin" value="0" />
<enum name="fullscreen" value="1" />
</attr>
Expand Down
8 changes: 8 additions & 0 deletions library/res/values/styles.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">

<style name="CustomUp">
<item name="android:homeAsUpIndicator">@drawable/custom_up</item>
</style>

</resources>
45 changes: 45 additions & 0 deletions library/src/com/slidingmenu/lib/CustomUpIndicator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.slidingmenu.lib;

import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;

public class CustomUpIndicator extends Drawable {

public static Paint mPaint;
private RectF mRect;

@Override
public void draw(Canvas canvas) {
// TODO Auto-generated method stub
mPaint.setARGB(0, 255, 0, 0);

mRect.left = 0.0f;
mRect.top = 0.0f;
mRect.right = 50.0f;
mRect.bottom = 50.0f;

canvas.drawRect(mRect, mPaint);
}

@Override
public int getOpacity() {
return PixelFormat.OPAQUE;
}

@Override
public void setAlpha(int alpha) {
// TODO Auto-generated method stub

}

@Override
public void setColorFilter(ColorFilter cf) {
// TODO Auto-generated method stub

}

}
Loading