【问题标题】:Android - How to implement a NavigationDrawer that is partially visible at all times?Android - 如何实现始终部分可见的 NavigationDrawer?
【发布时间】:2013-09-29 11:17:53
【问题描述】:

我想在我的 Android 项目中有一个 NavigationDrawer,它始终部分显示 ListView,并且这些项目也是可点击的,但是当用户拖动抽屉时,会出现完整的 ListView。

下图是我想要实现的目标:

第一个是“普通视图”,您可以在其中看到小图标。第二个是当用户滑动导航抽屉以使其打开时。第三个是当用户返回正常视图时,点击 A 和 C,图标会改变颜色。

有什么建议吗?

感谢您的回答:)

【问题讨论】:

  • 将列表视图与动画一起使用,将列表视图左右移动
  • @SunilMishra 我目前的代码不多,只有 DrawerLayout、ListView 和 ListView 的自定义 Adapter。如果愿意,我可以发布它。
  • 你找到解决办法了吗?

标签: android android-listview baseadapter navigation-drawer drawerlayout


【解决方案1】:

我遇到了这个开源库,https://github.com/StevenRudenko/ActionsContentView。我没有亲自使用过它,所以不能说它适合你在右边有一个抽屉的确切用例,但它确实在左边有一个抽屉。即使这样,您也可以从那里开始,并且应该能够在此基础上进行构建以适合您的用例。

【讨论】:

    【解决方案2】:

    感谢所有答案。这是我为使其工作所做的工作:

    我使用了建议的重叠片段和动画。在 onCreate 时,我手动计算了地图的宽度(屏幕尺寸 - 折叠时的抽屉尺寸),以便在修改抽屉尺寸时它不会奇怪地拉伸。我将抽屉设置在片段内,并且片段始终可见。之后,我实现了 OnGestureListener 并为我的活动创建了一个 GestureDetector,并开始监听来自 Drawer 的触摸事件:

    drawer.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent e) {
                gestureDetector.onTouchEvent(e);
                return false;
            }
        });
    

    然后是 onFling 方法

    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
            float velocityY) {
        if(velocityX < -250) {
             //animation for increasing the list width from 80 to 240
        } else if (velocityY > 250 ) {
             //animation for decreasing the list width from 240 to 80
        }
        return true;
        }
    

    【讨论】:

    • 嘿,你能用任何例子发布你的整个解决方案吗?
    【解决方案3】:

    我建议您在这种情况下使用两个重叠的片段。你可以看看http://developer.android.com/guide/practices/tablets-and-handsets.htmlhttp://developer.android.com/guide/components/fragments.html 获取指南。

    如果您有任何更具体的问题,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-22
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多