【问题标题】:Scrollbar + LinearLayout + GridView .. GridView not scrolling滚动条 + LinearLayout + GridView .. GridView 不滚动
【发布时间】:2012-03-29 19:43:50
【问题描述】:

我当前的布局是

<?xml version="1.0" encoding="utf-8"?>

<ScrollView
    android:id="@+id/scrMain"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_gravity="top"
    android:fillViewport="true" >


    <RelativeLayout
        android:id="@+id/rl"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <RelativeLayout
            android:id="@+id/llGridToday"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" android:visibility="gone">

            <FrameLayout
                android:id="@+id/FrameLayout1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true" >

                <ImageView
                    android:id="@+id/imageView2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/gridframe" />

                <FrameLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="right"
                    android:layout_marginRight="10dp"
                    android:layout_marginTop="10dp"
                    android:background="@drawable/calender" >

                    <TextView
                        android:id="@+id/txtDateToday"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center"
                        android:text="28" />
                </FrameLayout>

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="3dp"
                    android:text="Today"
                    android:textColor="#000" />
            </FrameLayout>

            <GridView
                android:id="@+id/gridToday"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_below="@+id/FrameLayout1"
                android:layout_weight="1"
                android:numColumns="3" >
            </GridView>
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/llGridTomorrow"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/llGridToday"
            android:orientation="vertical" android:visibility="gone">

            <FrameLayout
                android:id="@+id/FrameLayout1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true" >

                <ImageView
                    android:id="@+id/ImageView01"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/gridframe" />

                <FrameLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="right"
                    android:layout_marginRight="10dp"
                    android:layout_marginTop="10dp"
                    android:background="@drawable/calender" >

                    <TextView
                        android:id="@+id/txtDateTomorrow"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:gravity="center"
                        android:text="28" />
                </FrameLayout>

                <TextView
                    android:id="@+id/TextView02"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="3dp"
                    android:text="Tomorrow"
                    android:textColor="#000" />
            </FrameLayout>

            <GridView
                android:id="@+id/gridTomorrow"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_below="@+id/FrameLayout1"
                android:layout_weight="1"
                android:numColumns="3" >
            </GridView>
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/llGridMonth"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/llGridTomorrow"
            android:orientation="vertical" android:visibility="gone">

            <FrameLayout
                android:id="@+id/FrameLayout1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true" >

                <ImageView
                    android:id="@+id/ImageView02"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/gridframe" />

                <TextView
                    android:id="@+id/TextView03"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_marginTop="2dp"
                    android:text="This Month"
                    android:textColor="#000" />
            </FrameLayout>

            <GridView
                android:id="@+id/gridMonth"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_below="@+id/FrameLayout1"
                android:numColumns="3" android:stretchMode="columnWidth">
            </GridView>
        </RelativeLayout>
    </RelativeLayout>
</ScrollView>

这个Layout 包含三个GridViews。 我正在使 GridViews 的父 GridViews 可见,并将 ImageView + TextView 添加到 GridView

看起来不错。但没有滚动。

【问题讨论】:

  • 将可滚动的东西放在这样的可滚动的东西中很少见。 ScrollView 尤其很少在垂直滚动的情况下开箱即用,例如 GridView
  • gridviews 只有在它流出屏幕时才可滚动(默认情况下)......那么您可能会考虑使用支架来保存数据。

标签: android android-layout android-gridview android-scrollbar


【解决方案1】:

是的,拥有三个不同的GridView 有什么意义。只需创建一个 GridView 作为父级,并为 GridItem 设置一个单独的布局,这样您就可以按照自己的需要设置样式。

更新

这样的东西不适合你吗???

一个带有以下代码的布局

        <GridView 
            android:id="@+id/gridTomorrow" 
            android:layout_width="match_parent" 
            android:layout_height="wrap_content" 
            android:layout_alignParentBottom="true" 
            android:layout_alignParentLeft="true" 
            android:layout_below="@+id/FrameLayout1" 
            android:layout_weight="1" 
            android:numColumns="3" > 
        </GridView>

GridItem 的另一个布局

        <FrameLayout   
            android:id="@+id/FrameLayout1"   
            android:layout_width="match_parent"   
            android:layout_height="wrap_content"   
            android:layout_alignParentLeft="true"   
            android:layout_alignParentTop="true" >   

            <ImageView   
                android:id="@+id/ImageView01"   
                android:layout_width="wrap_content"   
                android:layout_height="wrap_content"   
                android:src="@drawable/gridframe" />   

            <FrameLayout   
                android:layout_width="wrap_content"   
                android:layout_height="wrap_content"   
                android:layout_gravity="right"   
                android:layout_marginRight="10dp"   
                android:layout_marginTop="10dp"   
                android:background="@drawable/calender" >   

                <TextView   
                    android:id="@+id/txtDateTomorrow"   
                    android:layout_width="wrap_content"   
                    android:layout_height="wrap_content"   
                    android:layout_gravity="center"   
                    android:gravity="center"   
                    android:text="28" />   
            </FrameLayout>   

            <TextView   
                android:id="@+id/TextView02"   
                android:layout_width="wrap_content"   
                android:layout_height="wrap_content"   
                android:layout_marginLeft="10dp"   
                android:layout_marginTop="3dp"   
                android:text="Tomorrow"   
                android:textColor="#000" />   
        </FrameLayout> 

使用GridAdapter Inflate 你的GridItems 进入网格

【讨论】:

  • 根据当前逻辑.. 上面包含 2 个 gridViews 的 RelativeLayouts 都明显消失了.. 但 3 个 gridviews 必须按照我在下面 Macarse 的评论回复中提到的功能
  • 我很难理解@Vishal 发布的布局背后的逻辑。其他人有什么意义吗???
  • 请解释您的功能要求,以便我了解逻辑。谢谢
【解决方案2】:

不知道为什么需要三个不同的GridView

尝试将GridView 设为父项,并将其余的View 项添加为GridView 的标题。

【讨论】:

  • @Macarase .. 所有三个视图都针对不同类型的数据,并且所有 3 个 gridview 项的单击处理也不同。所以我认为必须有 3 个差异。网格视图..
  • @Vishal:尝试在同一个 GridView 中添加每种类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
  • 2019-09-24
  • 2021-02-25
  • 1970-01-01
相关资源
最近更新 更多