修复了第一个TableRow android

时间:2013-04-08 09:58:09

标签: android tablerow android-tablelayout

我在这个表格中有一个表格布局我定义了一个包含4个edittexts作为列标题的tablerow。

我的问题是我想把这个静态行作为固定位置,所以当我向下滚动屏幕时,这一行的位置不会改变。

我从DB动态加载其他行。

感谢您的帮助!

这是我的xml代码:

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/horizontalScrollView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:background="@drawable/background">
    <ScrollView 
        android:id="@+id/scrollViewPhysicalExam"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
        <LinearLayout 
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <TableLayout 
                    android:id="@+id/TLArchiveHeader"
                    android:layout_height="wrap_content"
                    android:layout_width="match_parent">

                    <TableRow style="@style/HeaderRow">

                        <TextView
                        style="@style/HeaderText"
                        android:layout_width="200dp"
                        android:text="Owner name"/>

                    <TextView
                        style="@style/HeaderText"
                        android:layout_width="200dp"
                        android:text="Phone" />

                    <TextView
                        style="@style/HeaderText"
                        android:layout_width="200dp"
                        android:text="Address" />

                    <TextView
                        style="@style/HeaderText"
                        android:layout_width="200dp"
                        android:text="Mail" />
                    <TextView
                        style="@style/HeaderText"
                        android:layout_width="200dp"
                        android:text="Fax" />

                </TableRow>

            </TableLayout>

        </LinearLayout>
  </ScrollView>
</HorizontalScrollView>

1 个答案:

答案 0 :(得分:3)

首先, 你为什么需要在LinearLayoutScrollViewTableLayout会在没有LinearLayout的情况下垂直展开行。

第二 - 大量观点将显着降低应用程序性能。 考虑将TableLayout替换为..可能是ListView或代码您自己的组件。据我所知,您需要一个带有纯文本字段的简单表格 - 实现单个,快速且易于使用的组件并不困难。

第三 - 解决方案 - 只需将标题行放在ScrollView之外,如下所示:

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/horizontalScrollView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:background="@drawable/background">

    <TableLayout 
        android:id="@+id/TLArchiveHeader"
        android:layout_height="wrap_content"
        android:layout_width="match_parent">
        <TableRow style="@style/HeaderRow">
            <TextView
            style="@style/HeaderText"
            android:layout_width="200dp"
            android:text="Owner name"/>
            <TextView
                style="@style/HeaderText"
                android:layout_width="200dp"
                android:text="Phone" />
            <TextView
                style="@style/HeaderText"
                android:layout_width="200dp"
                android:text="Address" />
            <TextView
                style="@style/HeaderText"
                android:layout_width="200dp"
                android:text="Mail" />
            <TextView
                style="@style/HeaderText"
                android:layout_width="200dp"
                android:text="Fax" />
        </TableRow>
    </TableLayout>
    <ScrollView 
        android:id="@+id/scrollViewPhysicalExam"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <TableLayout 
            android:id="@+id/TLArchiveRowPlaceholder"
            android:layout_height="wrap_content"
            android:layout_width="match_parent">
        </TableLayout>
    </ScrollView>
</HorizontalScrollView>

将行添加到TLArchiveRowPlaceholder

但在这种情况下,你需要固定宽度的列。或者在每次主表更新后更新标题列宽度,以使标题未对齐。

希望这有帮助。

我的坏。 为什么答案在评论中? 在=)

之前没有读过它们