5

Każdy ma pomysł, jak osiągnąć ten rodzaj przejścia. Kiedy otworzymy Navagation szuflada na pełnym ekranie otrzyma animację w ten sposób. Spojrzałem również na reside menu, ale tutaj menu jest wstępnie zdefiniowane nie tak, jak chcę.Przejście w szufladzie nawigacji Android

Próbowałem również z NavigationDrawer, ale nie udało się.

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) { 

     } 
    }); 

góry dzięki

Animation in navigation drawer

+0

mogłeś zmienił predefiniowanego menu w Bibliotece Mieszkają-Menu, aby cokolwiek widoku chciałeś –

+0

jakiś pomysł jak to osiągnąć że??? –

+1

Masz na myśli? http://stackoverflow.com/questions/37335300/moving-and-resizing-drawerlayouts-content-on-sliding –

Odpowiedz

4

Wreszcie mam moją odpowiedź za pośrednictwem tej link for original post. Proszę spojrzeć tu

<?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> 

i MainActivity.java proszę spojrzeć poniżej

 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) { 
           } 
          } 
    ); 

} 
Powiązane problemy