最近从github上看到一个关于侧边栏的项目,模仿的是qq侧边栏。
Github地址是https://github.com/SpecialCyCi/AndroidResideMenu ,这个项目是一个android studio项目,可以导入android studio中,也可以导入到Eclipse中。
其中的ResideMenu就是写好的第三方控件,可以拿过来直接用。我们主要来看一下它是如何来运用的
- public class MenuActivity extends FragmentActivity implements View.OnClickListener{
-
- private ResideMenu resideMenu;
- private MenuActivity mContext;
- private ResideMenuItem itemHome;
- private ResideMenuItem itemProfile;
- private ResideMenuItem itemCalendar;
- private ResideMenuItem itemSettings;
-
-
-
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mContext = this;
- setUpMenu();
- if( savedInstanceState == null )
- changeFragment(new HomeFragment());
- }
-
- private void setUpMenu() {
-
-
- resideMenu = new ResideMenu(this);
- resideMenu.setBackground(R.drawable.menu_background);
- resideMenu.attachToActivity(this);
- resideMenu.setMenuListener(menuListener);
-
- resideMenu.setScaleValue(0.6f);
-
-
- itemHome = new ResideMenuItem(this, R.drawable.icon_home, "Home");
- itemProfile = new ResideMenuItem(this, R.drawable.icon_profile, "Profile");
- itemCalendar = new ResideMenuItem(this, R.drawable.icon_calendar, "Calendar");
- itemSettings = new ResideMenuItem(this, R.drawable.icon_settings, "Settings");
-
- itemHome.setOnClickListener(this);
- itemProfile.setOnClickListener(this);
- itemCalendar.setOnClickListener(this);
- itemSettings.setOnClickListener(this);
-
- resideMenu.addMenuItem(itemHome, ResideMenu.DIRECTION_LEFT);
- resideMenu.addMenuItem(itemProfile, ResideMenu.DIRECTION_LEFT);
- resideMenu.addMenuItem(itemCalendar, ResideMenu.DIRECTION_RIGHT);
- resideMenu.addMenuItem(itemSettings, ResideMenu.DIRECTION_RIGHT);
-
-
-
-
- findViewById(R.id.title_bar_left_menu).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- resideMenu.openMenu(ResideMenu.DIRECTION_LEFT);
- }
- });
- findViewById(R.id.title_bar_right_menu).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- resideMenu.openMenu(ResideMenu.DIRECTION_RIGHT);
- }
- });
- }
其中的ResideMenuItem是我们侧边栏中的选项,这里建立了四个选项,同时这个控件还具有左右侧边栏的效果,能够左右滑动。当然我们也可以设置选项在右侧边栏出现。在调用resideMenu.addMenuItem来设置在哪个侧边栏显示。
每一个选项则可以用来显示不同的Fragment。这个开源项目还是很不错的,是一个比较流行的侧边栏样式。
如果大家有什么问题,也欢迎大家和我交流。想要进一步了解的同学,可以点击查看源代码,亲自运行体验!