【问题标题】:Android NavigationView from right side右侧的 Android NavigationView
【发布时间】:2017-10-06 00:24:34
【问题描述】:

我创建了一个 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();
        }

【问题讨论】:

  • @sasikumar,我可以从右侧打开菜单,但我也想像附图一样滑动视图。
  • 如果我没听错的话,翻译——你的moveFactor——应该是-drawerView.getWidth() * slideOffsetslideOffset 是从0f1f 的分数,而不是任何东西的实际宽度。

标签: android navigationview side-menu


【解决方案1】:

要将View 与抽屉一起向左滑动,您的moveFactor 将如下所示:

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

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

slideOffset 是从0f1f 的分数。将其乘以抽屉的宽度得到实际偏移量,然后将其取反,我们将内容 View 平移到左侧。

【讨论】:

    【解决方案2】:

    试试这个

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

    【讨论】:

    • 它将视图滑动到右侧,我想将视图滑动到左侧。
    猜你喜欢
    • 2015-10-02
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 2015-12-13
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多