2

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

在此处输入图像描述

代码:

<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();
        }
4

2 回答 2

3

View要使用抽屉向左滑动,您moveFactor将如下所示:

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

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

slideOffset是范围从0f到的分数1f。将它乘以抽屉的宽度得到实际的偏移量,并将其取反,我们将内容平View移到左侧。

于 2017-05-08T05:42:35.400 回答
0

尝试这个

float moveFactor = drawerView.getWidth() * slideOffset;
container.setTranslationX(moveFactor);
于 2017-05-08T05:34:58.973 回答