Change the behaviour of a GridView to make it scroll horizontally rather than vertically

前端 未结 1 492
情书的邮戳
情书的邮戳 2021-01-01 02:39

I want to make a UI element like a GridView, I want it\'s complete functionality but want it to be horizontally scrollable rather than vertically.<

相关标签:
1条回答
  • 2021-01-01 03:13

    There is setRotation in API 11. You'll have to rotate the gridview by 90 degrees and child views by -90 degrees.

    Documentation: http://developer.android.com/reference/android/view/View.html#setRotation(float)

    Update:

    To get a 3d effect on views following APIs would be useful

    setCameraDistance(float) - set the z axis distance(depth)

    setRotationX(float) - set the horizontal axis angle

    setRotationY(float) - set the vertical axis angle

    Set the camera distance to half of the screen height. Then set the rotationX based on the view's location on screen. The rotation angles should be something like (20, 10, 0, -10, -20) from left to right. Later you can play with rotationY angles to get some height perception.

    Do all setting in extended GridView's overriden layout method.

    @override
    void layout(int t, int l, int r, int b) {
        super.layout(t, l, r, b);
        ...
        int columnStart = getFirstVisiblePosition()/no_of_columns;
        int columnEnd = getLastVisiblePosition()/no_of_columns;
    
        loop from 'columnStart' to 'columnEnd' 'no_of_colmns' times {
            // set the camera distance and rotationX to views
            // depending on the position of a view on screen.
        }
    }
    
    0 讨论(0)
提交回复
热议问题