Navigation in the Android navigation box

Anyone who has an idea of ​​how to achieve this type of transition. When we open the Navagation screen, the entire screen receives animation. I also looked at the live menu , but here the menu is not predetermined the way I want.

I also tried with NavigationDrawer but did not get success.

  drawer.addDrawerListener(new DrawerLayout.DrawerListener() { @Override public void onDrawerSlide(View drawerView, float slideOffset) { float moveFactor = (linearLayout.getWidth() * slideOffset); float min = 0.9f; float max = 1.0f; float scaleFactor = (max - ((max - min) * slideOffset)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { linearLayout.setTranslationX(moveFactor); linearLayout.setScaleX(scaleFactor); linearLayout.setScaleY(scaleFactor); } else { AnimationSet animSet = new AnimationSet(true); TranslateAnimation anim = new TranslateAnimation(lastTranslate, moveFactor, 0.0f, 0.0f); anim.setDuration(0); anim.setFillAfter(true); animSet.addAnimation(anim); ScaleAnimation scale = new ScaleAnimation(1.15f, 1.0f, 1.15f, 1.0f); scale.setDuration(10); scale.setFillAfter(true); animSet.addAnimation(scale); drawerView.startAnimation(animSet); lastTranslate = moveFactor; } } @Override public void onDrawerOpened(View drawerView) { } @Override public void onDrawerClosed(View drawerView) { } @Override public void onDrawerStateChanged(int newState) { } }); 

thanks in advance

Animation in the navigation box

+5
source share
1 answer

Finally, I got my answer through for the original post . Please see here

 <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context="test.pyramidions.com.dynamicview2.MainActivity" tools:openDrawer="start"> <RelativeLayout android:id="@+id/holder" android:layout_width="match_parent" android:background="@drawable/shadow" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:id="@+id/content" android:layout_width="match_parent" android:background="@color/colorAccent" android:layout_height="match_parent" android:orientation="vertical"> <include android:id="@+id/toolbar" layout="@layout/toolbar" /> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" /> </LinearLayout> </RelativeLayout> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:background="@android:color/transparent" android:layout_gravity="start" app:headerLayout="@layout/nav_header_main" app:menu="@menu/drawer_menu" /> </android.support.v4.widget.DrawerLayout> 

and for MainActivity.java , please look below

  public class MainActivity extends AppCompatActivity { public TabsPagerAdapter tabsPagerAdapter; public static ViewPager pager; int Numboftabs = 2; Toolbar toolbar; public NavigationView navigationView; public DrawerLayout drawer; View holderView, contentView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbar = (Toolbar) findViewById(R.id.toolbar); drawer = (DrawerLayout) findViewById(R.id.drawer_layout); navigationView = (NavigationView) findViewById(R.id.nav_view); holderView = findViewById(R.id.holder); contentView = findViewById(R.id.content); tabsPagerAdapter = new TabsPagerAdapter(getSupportFragmentManager(), Numboftabs); pager = (ViewPager) findViewById(R.id.pager); pager.setAdapter(tabsPagerAdapter); toolbar.setNavigationIcon(new DrawerArrowDrawable(this)); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (drawer.isDrawerOpen(navigationView)) { drawer.closeDrawer(navigationView); } else { drawer.openDrawer(navigationView); } } } ); drawer.setScrimColor(Color.TRANSPARENT); drawer.addDrawerListener(new DrawerLayout.SimpleDrawerListener() { @Override public void onDrawerSlide(View drawer, float slideOffset) { contentView.setX(navigationView.getWidth() * slideOffset); RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) contentView.getLayoutParams(); lp.height = drawer.getHeight() - (int) (drawer.getHeight() * slideOffset * 0.3f); lp.topMargin = (drawer.getHeight() - lp.height) / 2; contentView.setLayoutParams(lp); } @Override public void onDrawerClosed(View drawerView) { } } ); } 
+4
source

Source: https://habr.com/ru/post/1263300/


All Articles