android中slidemenu的开源项目的学习

来源:互联网 发布:手机拍视频软件 编辑:程序博客网 时间:2024/06/05 09:43

要实现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:

@Overridepublic 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}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}}

SimpleFragment的代码,slideMenu中要显示的内容就在这里面定义:

public class SimpleFragment extends Fragment{@Overridepublic 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工程里面

0 0
原创粉丝点击