2017-05-08 105 views
2

我已经创建了一个Android应用程序,我想从右侧打开滑动菜单,当抽屉打开时,我想要像附加图像一样滑动视图。Android NavigationView从右侧

enter image description here

代码:

<android.support.v4.widget.DrawerLayout 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:openDrawer="start"> 


    <android.support.design.widget.NavigationView 
     android:id="@+id/navigationView_Right_Home" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="right" 
     android:fitsSystemWindows="true" /> 

</android.support.v4.widget.DrawerLayout> 

对于下面的代码,我用幻灯片视图,但它不工作

 @Override 
     public void onDrawerSlide(View drawerView, float slideOffset) { 
      super.onDrawerSlide(drawerView, slideOffset); 
      View container = findViewById(R.id.ll); 
      float moveFactor = (slideOffset - drawerView.getWidth()); 

      container.setTranslationX(moveFactor); 

      drawer.bringChildToFront(drawerView); 
      drawer.requestLayout(); 
     } 
+0

参考http://stackoverflow.com/questions/32439171/how-to-implement-drawer-menu-open-from-right-side – sasikumar

+0

@sasikumar,我可以从右侧打开菜单,但我也想要像附加图像一样滑动视图。 –

+0

如果我正确地关注你,翻译 - 你的'moveFactor' - 将是'-drawerView.getWidth()* slideOffset'。 'slideOffset'是从'0f'到'1f'的分数,而不是实际的宽度。 –

回答

2

View与抽屉向左滑动,你moveFactor情况如下:

float moveFactor = -drawerView.getWidth() * slideOffset; 

请注意在drawerView.getWidth()前面的负号。

slideOffset是一个分数,范围从0f1f。将抽屉的宽度乘以实际偏移量,并将其取反,我们将内容View翻译为左侧。

+1

感谢它的工作! –

0

尝试这个

float moveFactor = drawerView.getWidth() * slideOffset; 
container.setTranslationX(moveFactor); 
+0

它将视图滑到右侧,我想将视图滑动到左侧。 –