要实现slidemenu的效果,需要下载两个开源项目:
SlideMenu和ActionBarSherlock这两个开源项目,下载地址分别如下:
https://github.com/jfeinstein10/SlidingMenu.git
https://github.com/JakeWharton/ActionBarSherlock.git
注意:
我在下载的时候遇到点问题,开始我是用git工具下载的,发现下载下来的包中只有源码,不包含工程里面依赖的资源文件。后面又直接去下载了压缩包,所以建议下载的时候直接下载压缩包。
下载完了之后,就是将压缩包解压倒Eclipse的workspace 文件夹,然后在Eclipse中File>new Android Project From Existing code新建一个Android工程。ActionBarSherlock这个项目压缩包解压完了之后,有三个工程,我只新建了第一个actionbarsherlock工程。而SlideMenu这个开源项目压缩包中页游三个项目,两个lib一个很好的demo(很有参考价值,因此也建议导进去),我是将整个解压文件都导入进去了,会创建连个工程,一个名叫Library(这个就是依赖工程),还有一个demo工程。
导入之后可能出现问题需要将导入的每一个工程里面的libs文件夹下面的android-support-v4.jar更新到最新,更新方法如下:
首先删掉libs下原有的android-support-v4.jar,然后选中当前工程,右键>Android Tools>Android Support Library。(注意:每一个导入的工程都有更新)
这步之后,就可以新建一个自己的Android工程,然后选中工程,右键>properties>Android,在下面的Llibrary里面Add进来Library工程和actionbarsherlock工程。
在自己的工程中,新建一个Activity继承SlidingFragmentActivity,在onCreate方法里面加载一个Fragment:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle(mTitleRes);
setBehindContentView(R.layout.menu_frame);
if (savedInstanceState == null) {
FragmentTransaction t = this.getSupportFragmentManager().beginTransaction();
mFragment = new SimpleFragment();
t.replace(R.id.menu_frame, mFragment);
t.commit();
} else {
mFragment = (SimpleFragment)this.getSupportFragmentManager().findFragmentById(R.id.menu_frame);
}
}
创建一个Menu,并绑定监听器,用来实现slidemenu的滑动(默认是从左到右):
public boolean onOptionsItemSelected(android.view.MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
toggle();
return true;
}
return super.onOptionsItemSelected(item);
}
public boolean onCreateOptionsMenu(android.view.Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
然后用MainActivity继承上面的那个Activity,就可以实现一个简单的SlideMenu功能:
public class MainActivity extends BaseActivity {
public MainActivity() {
super(R.string.app_name);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
SimpleFragment的代码,slideMenu中要显示的内容就在这里面定义:
public class SimpleFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d("Tag", "Start to Inflating View...");
return inflater.inflate(R.layout.simple_fragment_layout, null);
}
}
至此,一个简单的Slidemenu效果就已经实现了。SlideMenu还有很多强大的功能,很多很棒的效果,具体可以参考Demo工程里面