Android gridview和自定义标题

时间:2013-12-18 20:50:15

标签: android gridview

我正在实施以下GUI:

enter image description here

对于红线下面的9个元素(线下的所有内容都应该是可滚动的)我使用了gridview布局,这是一个有意义的工作。但实际上我并不知道如何制作标题。

到目前为止我的xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:background = "@drawable/t"
   tools:context=".AppStarter" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center">
    <GridView 
        android:id="@+id/gridview"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:numColumns="3"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"
        android:stretchMode="columnWidth"
        android:gravity="center"
        android:layout_marginLeft="2sp"
        android:layout_marginRight="5sp"
        android:layout_marginTop="0sp" />
 </LinearLayout>
</RelativeLayout>

我的想法是在gridview上添加一个额外的linearLayout,但这种方法没有提供预期的结果。任何想法如何实现这个标题?

提前致谢!

2 个答案:

答案 0 :(得分:4)

您可以尝试我自己的实现。经过多次尝试,我决定编写自己的代码!

https://github.com/munix/GridViewHeader

答案 1 :(得分:0)

您可以使用Horizo​​ntal LinearLayout作为标题,并使用父RelativeLayout将GridView置于其下方:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingBottom="@dimen/activity_vertical_margin"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:background = "@drawable/t"
   tools:context=".AppStarter" >

   <!-- Header section -->
   <LinearLayout
       android:id="@+id/headerlayout" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content"
       android:orientation="horizontal" >

           <!-- Example header content -->
           <FrameLayout 
               android:id="@+id/frame1"
               android:layout_width="wrap_content" 
               android:layout_height="match_parent" />

           <FrameLayout 
               android:id="@+id/frame2"
               android:layout_width="wrap_content" 
               android:layout_height="match_parent" />

   </LinearLayout>

   <!-- GridView section -->
   <GridView 
       android:id="@+id/gridview"
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content"
       android:layout_below="@id/headerlayout" <!-- This line sets relative position of GridView -->
       android:numColumns="3"
       android:verticalSpacing="10dp"
       android:horizontalSpacing="10dp"
       android:stretchMode="columnWidth"
       android:gravity="center"
       android:layout_marginLeft="2sp"
       android:layout_marginRight="5sp"
       android:layout_marginTop="0sp" />
</RelativeLayout>