GridLayout的Android,水平和垂直滚动

时间:2013-03-01 00:15:47

标签: android scrollview grid-layout

我无法让GridLayout水平滚动。

我发现了一个类似的问题Gridlayout + ScrollView。我尝试了这种方法,但它没有用。

它删除了许多表(因为它应该显示从1到20的所有表)。

这是xml文件

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:padding="16dp" >

            <android.support.v7.widget.GridLayout
                android:id="@+id/table_mapGrid"
                android:layout_width="250dp"
                android:layout_height="wrap_content" />
        </LinearLayout>
    </ScrollView>

    <include layout="@layout/cell_list_loading" />

    <TextView
        android:id="@+id/table_errorView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="20dp"
        android:text="@string/message_error_connection"
        android:visibility="invisible" />

</FrameLayout>

我希望显示动态内容,可能会在表之间使用空格来改变列数和行数。 我已经完成了,但问题是当GridLayout的宽度变得大于其容器的宽度时,我想用水平滚动解决这个问题,但它似乎不起作用......

有什么建议吗?

2 个答案:

答案 0 :(得分:10)

我找到了解决方案

似乎Android ScrollView只能作为VerticalScrollView使用(名称不像Horizo​​ntalScrollView那么直观)。

因此,要使某些内容可以垂直和水平滚动,您需要在Horizo​​ntalScrollView中嵌套(垂直)ScrollView,或者反过来,就像这样

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="match_parent">

            <!-- Your content here -->

     </HorizontalScrollView>
</ScrollView>

答案 1 :(得分:1)

嵌套的Horizo​​ntalScrollView / ScrollView不允许您同时滚动两个方向。 我有这个问题并为此创建了一个自定义组件,如果它可以帮助任何人,这里是链接:

https://gist.github.com/androidseb/9902093