如何在相对布局中添加固定标题和滚动视图表行?

Posted

技术标签:

【中文标题】如何在相对布局中添加固定标题和滚动视图表行?【英文标题】:How to add fixed header and scrollview table rows in relativelayout? 【发布时间】:2021-12-29 02:13:54 【问题描述】:

我的目的是用可滚动的行固定表头,以便用户在表内添加值时表头可以稳定。如何在表格标题后的表格行内添加滚动视图,这是我的代码,

activity.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
tools:context=".MainActivity">

<TableLayout
    android:layout_
    android:layout_
    android:background="@android:color/white"
    android:layout_margin="40dp">

    <TableRow
        android:layout_
        android:background="@color/colorGreen">

        <TextView
            android:layout_
            android:layout_
            android:layout_weight="2"
            android:gravity="center_horizontal"
            android:padding="10sp"
            android:text="Department"
            android:textColor="@android:color/white"
            android:textSize="14sp" />
    </TableRow>
    <TableRow>
        <TextView
            android:text="B.E/B.Tech"
            android:layout_
            android:layout_
            android:layout_weight="2"
            android:gravity="center_horizontal"
            android:padding="10sp"
            android:textSize="15sp" />
    </TableRow>
    <TableRow>
        <TextView
            android:text="M.E/M.Tech"
            android:layout_
            android:layout_
            android:layout_weight="2"
            android:gravity="center_horizontal"
            android:padding="10sp"
            android:textSize="15sp" />
    </TableRow>
  </TableLayout>
</RelativeLayout>

【问题讨论】:

你能添加一张你需要的粗略图表吗? 【参考方案1】:

最简单的方法是将标题/标题放在TableLayout之外,然后需要将TableLayout包裹在ScrollView

我对你的代码做了一些修改

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    tools:context=".ui.TableActivity">

    <TextView
        android:id="@+id/title"
        android:layout_
        android:layout_
        android:padding="10dp"
        android:layout_centerHorizontal="true"
        android:gravity="center_horizontal"
        android:layout_margin="40dp"
        android:text="Department"
        android:background="@color/design_default_color_primary"
        android:textColor="@android:color/white"
        android:textSize="14sp" />

    <ScrollView
        android:layout_
        android:layout_
        android:layout_below="@id/title">

        <TableLayout
            android:layout_
            android:layout_
            android:background="@android:color/white"
            android:layout_margin="40dp">
            <TableRow>
                <TextView
                    android:text="B.E/B.Tech"
                    android:layout_
                    android:layout_
                    android:layout_weight="2"
                    android:gravity="center_horizontal"
                    android:padding="10dp"
                    android:textSize="15sp" />
            </TableRow>
            <TableRow>
                <TextView
                    android:text="M.E/M.Tech"
                    android:layout_
                    android:layout_
                    android:layout_weight="2"
                    android:gravity="center_horizontal"
                    android:padding="10dp"
                    android:textSize="15sp" />
            </TableRow>
        </TableLayout>
    </ScrollView>
</RelativeLayout>

无论如何,如果希望显示数据列表,我认为您应该考虑使用RecyclerView。由于RecyclerView 是处理数据列表的推荐方式

【讨论】:

滚动视图必须发生在第 1 行之后。即,固定页眉[tablerow1] 和可滚动页脚[剩余的 tablerow] 当前答案应该如你所愿

以上是关于如何在相对布局中添加固定标题和滚动视图表行?的主要内容,如果未能解决你的问题,请参考以下文章

页面应用程序 + 自动布局 + 子视图在滚动时缩放

Codeigniter foreach 视图表布局

UIScrollView 不使用 AutoLayout 滚动

如何使用自动布局 beta 7 UIKIT 修复 xcode 11 中可滚动内容大小的歧义

如何在symfony和doctrine中使用mysql视图表中的分页?

滚动列表视图垂直和水平相同的图像