我在这个表格中有一个表格布局我定义了一个包含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>
答案 0 :(得分:3)
首先,
你为什么需要在LinearLayout
内ScrollView
?
TableLayout
会在没有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
。
但在这种情况下,你需要固定宽度的列。或者在每次主表更新后更新标题列宽度,以使标题未对齐。
希望这有帮助。
我的坏。 为什么答案在评论中? 在=)
之前没有读过它们