0

TableLayout を使用して、アプリケーションで基本的なデータシートを作成しようとしています。最初の行には、各列のタイトルが含まれています。それ以降のすべての行はデータです。最初のタイトル行を表示したまま、データをスクロール可能にしたい (つまり、最初の行は残りの行と一緒にスクロールしない)。

次のようなことを試しました(失敗しました):

<TableLayout>
  <TableRow>
    <!-- The headers -->
    <TextView android:text="Header #1"/>
    <TextView android:text="Header #2"/>
    <TextView android:text="Header #3"/>
  </TableRow>

  <ScrollView>
    <!--The rest of the data -->
    <TableRow>
    <TableRow>
    ...
  </ScrollView>
</TableLayout>

これにより、プログラムがクラッシュします。他の提案はありますか?

4

3 に答える 3

2

tablerow を直接の子孫として持つ必要はありません。scrollview は 1 つの子のみを受け入れるため、クラッシュします。スクロールビューに別のテーブルレイアウトを配置し、その中に行を配置します。

于 2011-02-08T10:19:32.730 に答える
1

TableRowの直接の子孫として sしか持つことができないため、クラッシュしますTableLayout

おそらく使用したいのは、ListViewその上の「ヘッダー」です。

例 (完全ではありません):

<LinearLayout
  android:orientation="horizontal"
  android:layout_width="fill_parent"
>
   <TextView
      android:id="@+id/header1"
      android:layout_weight="1"
   />
   <TextView
      android:id="@+id/header2"
      android:layout_weight="1"
   />
   <TextView
      android:id="@+id/header3"
      android:layout_weight="1"
   />
</LinearLayout>
<ListView
    android:layout_width="fill_parent"
...
/>

重要なのは、同じサイズの 3 つのビューを表示する と ですlayout_weight="1"。次に、によって提供されるカスタム レイアウトで andandroid:layout_width="fill_parent"を作成し、子ビューに対して同じことを行う必要があります。それらが水平方向に正確に並ぶようにするには、パディング/マージンを少しいじる必要があるかもしれません。AdapterAdapter

于 2010-08-03T04:19:04.577 に答える
0

RelativeLayout両方ScrollViewを使用しTableLayoutて上部に配置し、両方TableLayoutsに同じ最初の行を入力すると、トリックが発生する可能性があります。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
    <ScrollView
            android:id="@+id/tabscrvie"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            >
            <TableLayout 
                android:id="@+id/gridview"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                >

        </TableLayout>
    </ScrollView>
    <TableLayout
            android:id="@+id/headergridview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignTop="@id/tabscrvie"
            >
    </TableLayout>
</RelativeLayout>
于 2012-06-23T07:12:21.557 に答える