在android中的TableLayout里面的ScrollView

时间:2014-05-08 06:18:23

标签: android xml android-layout scrollview android-tablelayout

我正在开发一个我正在使用表格布局的应用程序。我的表格布局的第一行是标题。现在我想要的东西是Header或第一行不应该是可滚动的,而其他的应该是可滚动的。我的代码是:

<TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:shrinkColumns="*"  android:stretchColumns="*" android:background="#ffffff"> 

    <!-- Row 1 with single column -->
    <TableRow 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:gravity="center_horizontal">  
        <TextView 
            android:layout_width="match_parent" android:layout_height="wrap_content"
            android:textSize="18sp" android:text="@string/com"  android:layout_span="3"
            android:padding="18dip" android:gravity="center"
            android:textColor="#000"/>  
    </TableRow>   


    <!-- Row 2 with 3 columns -->
    <TableRow 
        android:id="@+id/tableRow1" 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent"
        android:background="#b0b0b0"
        android:gravity="center_horizontal">  
      <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="12dp"
        android:text="@string/c"
        android:gravity="center"
        android:textSize="18sp"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    </TableRow> 

    <TableRow 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:gravity="center_horizontal">  
        <TextView 
            android:id="@+id/TextView3" 
            android:text="@string/c1"
            android:layout_weight="1" 
            android:gravity="center"/>

        <TextView 
                android:id="@+id/TextView4" 
                android:text="@string/c2"
                android:layout_weight="1" 
                android:gravity="center"/>
    </TableRow>  

    <TableRow 
        android:id="@+id/tableRow2" 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent"
        android:background="#b0b0b0"
        android:gravity="center_horizontal">  
      <TextView
        android:id="@+id/textView5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="12dp"
        android:text="@string/d"
        android:gravity="center"
        android:textSize="18sp"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    </TableRow> 

    <!-- Row 3 with 2 columns -->
    <TableRow 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:gravity="center_horizontal">  
        <TextView 
            android:id="@+id/TextView6" 
            android:text="@string/d1"
            android:layout_weight="1" 
            android:gravity="center"/>

        <TextView 
                android:id="@+id/TextView7" 
                android:text="@string/d2"
                android:layout_weight="1" 
                android:gravity="center"/>
    </TableRow>  

      <TableRow 
        android:id="@+id/tableRow2" 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent"
        android:background="#b0b0b0"
        android:gravity="center_horizontal">  
      <TextView
        android:id="@+id/textView5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="12dp"
        android:text="@string/e"
        android:gravity="center"
        android:textSize="18sp"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    </TableRow> 

    <!-- Row 3 with 2 columns -->
    <TableRow 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:gravity="center_horizontal">  
        <TextView 
            android:id="@+id/TextView6" 
            android:text="@string/e1"
            android:layout_weight="1" 
            android:gravity="center"/>

        <TextView 
                android:id="@+id/TextView7" 
                android:text="@string/e2"
                android:layout_weight="1" 
                android:gravity="center"/>
    </TableRow>

      <TableRow 
        android:id="@+id/tableRow2" 
        android:layout_height="wrap_content" 
        android:layout_width="match_parent"
        android:background="#b0b0b0"
        android:gravity="center_horizontal">  
      <TextView
        android:id="@+id/textView5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="12dp"
        android:text="@string/g"
        android:gravity="center"
        android:textSize="18sp"
        android:textAppearance="?android:attr/textAppearanceMedium" />
    </TableRow> 
</TableLayout>

任何人都可以帮助我如何使第一个TextView作为标题和不可滚动和其他完整的表作为可滚动.. ??

4 个答案:

答案 0 :(得分:4)

在xml文件中简单使用这段代码就可以了......

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:orientation="vertical" >

<!-- Header aligned to top -->

<LinearLayout
    android:id="@+id/headerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ffffff"
        android:shrinkColumns="*"
        android:stretchColumns="*" >

        <!-- Row 1 with single column -->

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal" >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_span="3"
                android:gravity="center"
                android:padding="18dip"
                android:text="com"
                android:textColor="#000"
                android:textSize="18sp" />
        </TableRow>
    </TableLayout>
  </LinearLayout>

  <ScrollView
    android:id="@+id/scrollablContent"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" >

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ffffff"
        android:shrinkColumns="*"
        android:stretchColumns="*" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#b0b0b0"
            android:gravity="center_horizontal" >

            <TextView
                android:id="@+id/textView2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:gravity="center"
                android:text="c"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="18sp" />
        </TableRow>

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal" >

            <TextView
                android:id="@+id/TextView3"
                android:layout_weight="1"
                android:gravity="center"
                android:text="c1" />

            <TextView
                android:id="@+id/TextView4"
                android:layout_weight="1"
                android:gravity="center"
                android:text="c2" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#b0b0b0"
            android:gravity="center_horizontal" >

            <TextView
                android:id="@+id/textView5"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:gravity="center"
                android:text="d"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="18sp" />
        </TableRow>

        <!-- Row 3 with 2 columns -->

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal" >

            <TextView
                android:id="@+id/TextView6"
                android:layout_weight="1"
                android:gravity="center"
                android:text="d1" />

            <TextView
                android:id="@+id/TextView7"
                android:layout_weight="1"
                android:gravity="center"
                android:text="d2" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#b0b0b0"
            android:gravity="center_horizontal" >

            <TextView
                android:id="@+id/textView5"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:gravity="center"
                android:text="e"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="18sp" />
        </TableRow>

        <!-- Row 3 with 2 columns -->

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal" >

            <TextView
                android:id="@+id/TextView6"
                android:layout_weight="1"
                android:gravity="center"
                android:text="e1" />

            <TextView
                android:id="@+id/TextView7"
                android:layout_weight="1"
                android:gravity="center"
                android:text="e2" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#b0b0b0"
            android:gravity="center_horizontal" >

            <TextView
                android:id="@+id/textView5"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="12dp"
                android:gravity="center"
                android:text="g"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="18sp" />
        </TableRow>
    </TableLayout>
</ScrollView>

<RelativeLayout
    android:id="@+id/footerView"
    android:layout_width="wrap_content"
    android:layout_height="72dp" >

    <!-- Footer aligned to bottom -->

</RelativeLayout>

</LinearLayout>

答案 1 :(得分:1)

尝试这样的事情,

<TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:shrinkColumns="*"  android:stretchColumns="*" android:background="#ffffff"> 


    <TableRow 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent" 
        android:gravity="center_horizontal">  
        <TextView 
            android:layout_width="match_parent" android:layout_height="wrap_content"
            android:textSize="18sp" android:text="@string/com"  android:layout_span="3"
            android:padding="18dip" android:gravity="center"
            android:textColor="#000"/>

    </TableRow>   



      <ScrollView
          android:id="@+id/scrollView1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" >

          <LinearLayout
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical" >

              <TableRow
                  android:id="@+id/tableRow1"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:background="#b0b0b0"
                  android:gravity="center_horizontal" >

                  <TextView
                      android:id="@+id/textView2"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:layout_marginTop="12dp"
                      android:gravity="center"
                      android:text="@string/c"
                      android:textAppearance="?android:attr/textAppearanceMedium"
                      android:textSize="18sp" />
              </TableRow>

              <TableRow
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:gravity="center_horizontal" >

                  <TextView
                      android:id="@+id/TextView3"
                      android:layout_weight="1"
                      android:gravity="center"
                      android:text="@string/c1" />

                  <TextView
                      android:id="@+id/TextView4"
                      android:layout_weight="1"
                      android:gravity="center"
                      android:text="@string/c2" />
              </TableRow>

              <TableRow
                  android:id="@+id/tableRow2"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:background="#b0b0b0"
                  android:gravity="center_horizontal" >

                  <TextView
                      android:id="@+id/textView5"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:layout_marginTop="12dp"
                      android:gravity="center"
                      android:text="@string/d"
                      android:textAppearance="?android:attr/textAppearanceMedium"
                      android:textSize="18sp" />
              </TableRow>

              <TableRow
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:gravity="center_horizontal" >

                  <TextView
                      android:id="@+id/TextView6"
                      android:layout_weight="1"
                      android:gravity="center"
                      android:text="@string/d1" />

                  <TextView
                      android:id="@+id/TextView7"
                      android:layout_weight="1"
                      android:gravity="center"
                      android:text="@string/d2" />
              </TableRow>

              <TableRow
                  android:id="@+id/tableRow2"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:background="#b0b0b0"
                  android:gravity="center_horizontal" >

                  <TextView
                      android:id="@+id/textView5"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:layout_marginTop="12dp"
                      android:gravity="center"
                      android:text="@string/e"
                      android:textAppearance="?android:attr/textAppearanceMedium"
                      android:textSize="18sp" />
              </TableRow>

              <TableRow
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:gravity="center_horizontal" >

                  <TextView
                      android:id="@+id/TextView6"
                      android:layout_weight="1"
                      android:gravity="center"
                      android:text="@string/e1" />

                  <TextView
                      android:id="@+id/TextView7"
                      android:layout_weight="1"
                      android:gravity="center"
                      android:text="@string/e2" />
              </TableRow>

              <TableRow
                  android:id="@+id/tableRow2"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:background="#b0b0b0"
                  android:gravity="center_horizontal" >

                  <TextView
                      android:id="@+id/textView5"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:layout_marginTop="12dp"
                      android:gravity="center"
                      android:text="@string/g"
                      android:textAppearance="?android:attr/textAppearanceMedium"
                      android:textSize="18sp" />
              </TableRow>
          </LinearLayout>

      </ScrollView>

</TableLayout>

答案 2 :(得分:1)

在第一行之后,描述滚动视图

像这样......

<TableLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </TableRow>
     <ScrollView
            android:id="@+id/scrollView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

           <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical" >

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

    </TableRow>

    <TableRow
        android:id="@+id/tableRow3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </TableRow>

    <TableRow
        android:id="@+id/tableRow4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </TableRow>        

      </LinearLayout>
      </ScrollView>
</TableLayout>

答案 3 :(得分:0)

您可以为除标题表行之外的剩余表格行创建LinearLayout,并将此LinearLayout添加到ScrollView,因为ScrollView只能有一个子项。

例如:

<ScrollView
        android:id="@+id/scrollviewID"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            //your table rows

        </LinearLayout>
</ScrollView>