5

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

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

在此处输入图像描述

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

任何建议如何做到这一点?

谢谢回答 :)

4

3 回答 3

2

I came across this open source library, https://github.com/StevenRudenko/ActionsContentView. I haven't personally used it so can't say it will fit in your exact use case of having a drawer at right but it does has the drawer on the left. Even then you could start from there and should be able to build upon it to fit your use case.

于 2013-09-27T23:40:08.170 回答
1

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

我使用了建议的重叠片段和动画。在 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;
    }
于 2013-10-16T07:35:48.613 回答
0

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

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

于 2013-09-26T06:18:40.510 回答