60

请看这里的 XML 代码:

<TableLayout
    android:id="@+id/tableLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dip"
    xmlns:android="http://schemas.android.com/apk/res/android">

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

    <!-- Some stuff goes here -->

    />
    </TableRow>

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

    <!-- Some stuff goes here -->

    />
    </TableRow>

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

    <!-- Some stuff goes here -->

    />
    </TableRow>


</TableLayout>

我的代码比这长得多,但我只是删除了不必要的部分。问题是我想让它TableLayout成为可滚动的,以便可以显示我所有的东西。

我试图将这一行放入其中TableLayout以使其可滚动:

android:isScrollContainer="true"

但它不能完成这项工作。有办法吗?

4

4 回答 4

106

把整个东西包起来:

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:scrollbars="none"
    android:layout_weight="1">
    <LinearLayout
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:orientation="vertical">

    ...

</ScrollView>
于 2011-06-28T22:19:19.220 回答
28

从技术上讲,您不需要 ScrollView 中的 LinearLayout:

<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none"
android:layout_weight="1">

    <TableLayout
    android:id="@+id/tableLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dip"
    android:isScrollContainer="true">

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

        <--!Everything Else You Already Have-->

    </TableRow>
 </TableLayout>
</ScrollView>

一旦你在 ScrollView 中占据了足够的空间,滚动效果就会激活(有点像 HTML TextArea,一旦你有足够的文本行,滚动就会激活。)

您也可以嵌套 ScrollView,但是在 ScrollView 中有足够的内容之前,您无法感受到滚动效果。

于 2014-08-27T00:37:20.627 回答
2

谢谢mbauer,它解决了我按顺序放置的问题

  1. 表格布局
  2. 带结尾的 TableRow(用于列的标题)
  3. 滚动视图
  4. 线性布局
  5. x TableRow 与结束
  6. 结束线性布局
  7. 结束滚动视图
  8. 结束表格布局
于 2014-12-26T11:58:05.620 回答
0

它也适用于约束布局。只需在 TabLayout 上添加以下属性。

<android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TableLayout
            android:id="@+id/tableLayout"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:isScrollContainer="true">

        . . .
于 2018-07-04T17:24:45.910 回答