12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package com.reactnativenavigation.views;
-
- import android.content.Context;
- import android.support.v4.view.GravityCompat;
- import android.support.v4.widget.DrawerLayout;
- import android.view.Gravity;
- import android.widget.RelativeLayout;
-
- import com.reactnativenavigation.params.SideMenuParams;
- import com.reactnativenavigation.utils.ViewUtils;
-
- public class SideMenu extends DrawerLayout {
-
- private ContentView sideMenuView;
- private RelativeLayout contentContainer;
-
- public RelativeLayout getContentContainer() {
- return contentContainer;
- }
-
- public void destroy() {
- sideMenuView.unmountOnDetachedFromWindow();
- removeView(sideMenuView);
- }
-
- public void setVisible(boolean visible, boolean animated) {
- if (!isShown() && visible) {
- openDrawer(animated);
- }
-
- if (isShown() && !visible) {
- closeDrawer(animated);
- }
- }
-
- public void openDrawer() {
- openDrawer(Gravity.LEFT);
- }
-
- public void openDrawer(boolean animated) {
- openDrawer(Gravity.LEFT, animated);
- }
-
- public void closeDrawer(boolean animated) {
- closeDrawer(Gravity.LEFT, animated);
- }
-
- public void toggleVisible(boolean animated) {
- if (isDrawerOpen(GravityCompat.START)) {
- closeDrawer(animated);
- } else {
- openDrawer(animated);
- }
- }
-
- public SideMenu(Context context, SideMenuParams sideMenuParams) {
- super(context);
- createContentContainer();
- createSideMenu(sideMenuParams);
- }
-
- private void createContentContainer() {
- LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
- contentContainer = new RelativeLayout(getContext());
- contentContainer.setId(ViewUtils.generateViewId());
- addView(contentContainer, lp);
- }
-
- private void createSideMenu(SideMenuParams sideMenuParams) {
- sideMenuView = new ContentView(getContext(), sideMenuParams.screenId, sideMenuParams.navigationParams);
- LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
- lp.gravity = Gravity.START;
- addView(sideMenuView, lp);
- }
- }
|