5

Bất kỳ ai có ý tưởng về cách đạt được loại chuyển đổi này. Khi chúng tôi mở Navagation toàn màn hình ngăn kéo sẽ nhận hoạt ảnh như thế này. Tôi cũng nhìn vào reside menu nhưng ở đây trình đơn được xác định trước không như tôi muốn.Quá trình chuyển đổi trong ngăn điều hướng android

Tôi cũng đã thử với NavigationDrawer nhưng không thành công.

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

     } 
    }); 

Cảm ơn trước

Animation in navigation drawer

+0

bạn có thể đã thay đổi thực đơn được xác định trước trong Reside-Menu Thư viện với những gì đã từng xem các bạn muốn –

+0

bất kỳ ý tưởng làm thế nào để đạt được cái đó??? –

+1

Ý bạn là như thế này? http://stackoverflow.com/questions/37335300/moving-and-resizing-drawerlayouts-content-on-sliding –

Trả lời

4

Cuối cùng tôi nhận được câu trả lời của tôi thông qua link for original post này. Hãy có một cái nhìn ở đây

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

và cho MainActivity.java xin vui lòng có một cái nhìn dưới

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

} 
Các vấn đề liên quan