2012-11-24 45 views
5
<GridView 
android:id="@+id/gridView1" 
android:layout_width="wrap_content" 
android:layout_height="match_parent" 
android:columnWidth="100dip" 
android:numColumns="8" 
android:scrollbarStyle="insideOverlay" 
android:scrollbars="vertical|horizontal" 
android:stretchMode="none" > 
</GridView> 

我想在gridview中使用垂直和水平滚动条,如上所示。 我看到了垂直的那个确实很好,但水平的不。 所以我尝试通过放置在水平滚动查看GridView控件像下面如何在android中使用gridview的水平滚动条?

<HorizontalScrollView 
     android:id="@+id/horizontalScrollView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

     <GridView 
      android:id="@+id/gridView1" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:columnWidth="100dip" 
      android:numColumns="8" 
      android:scrollbarStyle="insideOverlay" 
      android:scrollbars="vertical|horizontal" 
      android:stretchMode="none" > 
     </GridView> 

    </HorizontalScrollView> 

更糟修复它,它会显示只有一个GridView控件,当然还有列,没有水平滚动条。

我该如何解决?

+2

据我知道'GridView'被固定到屏幕宽度,因此它不可能在水平方向上滚动。在'Horizo​​ntalScrollView'中放置一个'GridView'并不能解决问题,因为它实际上给了'GridView'无限的空间,并且没有滚动条。 – Squonk

回答

0

GridView延伸AbsListView类。实质上,网格视图是一个列表视图,除了行以外,还支持列。所以它不支持水平滚动。

你基本上通过设置android:scrollbars="vertical|horizontal"属性所做的工作是指示网格视图显示水平滚动条和垂直滚动条。设置此属性将不会启用在视图中滚动(gridview和listviews本身具有滚动功能)。

如果您可以更多地解释您正在尝试做什么,可以提出一种替代方法。

0

的最佳解决方案,以用于既卧式和垂直scroolview在机器人

 <HorizontalScrollView 
      android:layout_width="match_parent" 
      android:layout_height="fill_parent" 
      android:layout_below="@+id/seatLegendLayout"> 

      <FrameLayout 
       android:layout_width="fill_parent" 
       android:layout_height="match_parent"> 

       <LinearLayout 
        android:id="@+id/linearLayout_gridtableLayout" 
        android:layout_width="900dp" 
        android:layout_height="match_parent" 
        android:orientation="horizontal"> 

        <GridView 
         android:id="@+id/gridView1" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent" 
         android:layout_margin="4dp" 
         android:columnWidth="100dp" 
         android:gravity="center" 
         android:numColumns="9" 
         android:horizontalSpacing="1dp" 
         android:scrollbarAlwaysDrawHorizontalTrack="true" 
         android:scrollbarAlwaysDrawVerticalTrack="true" 
         android:scrollbars="horizontal" 
         android:stretchMode="none" 
         android:verticalSpacing="1dp"> 

        </GridView> 


       </LinearLayout> 
      </FrameLayout> 
     </HorizontalScrollView>