2012-11-24 73 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>