【问题标题】:Android Studio: TableRow after ScrollView not appearingAndroid Studio:ScrollView 后的 TableRow 没有出现
【发布时间】:2021-07-18 01:07:39
【问题描述】:

我正在尝试创建一个表,其中第一行和最后一行是固定的,并且中间的表是可滚动的。到目前为止,我的代码如下:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/last_row"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/first_row" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TableLayout
            android:id="@+id/scoreCardTable"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:isScrollContainer="true" />
    </ScrollView>

    <include layout="@layout/last_row" />
</TableLayout>

layout/first_row 包含:

<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/first_row"
    android:orientation="vertical">
    <!-- Headers for Score card -->
    <TextView
        android:layout_column="1"
        android:padding="3dip"
        android:text="@string/hole" />

    <TextView
        android:layout_column="2"
        android:text="@string/par"
        android:padding="3dip" />

    <TextView
        android:layout_column="3"
        android:text="@string/distance"
        android:padding="3dip" />

    <TextView
        android:layout_column="4"
        android:text="@string/score"
        android:padding="3dip" />
</TableRow>

并且 layout/last_row 包含:

<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/first_row"
    android:orientation="vertical">

    <TextView
        android:id="@+id/par_total"
        android:layout_column="2"
        android:padding="3dip"
        android:text="PAR" />

    <TextView
        android:id="@+id/distance_total"
        android:layout_column="3"
        android:padding="3dip"
        android:text="DISTANCE" />

    <TextView
        android:id="@+id/score_total"
        android:layout_column="4"
        android:padding="3dip"
        android:text="SCORE" />
</TableRow>

目前,第一行是固定的,body 是可滚动的,但最后一行根本没有出现。我不希望第一行和最后一行成为页眉或页脚,因为我计划稍后也有页眉和页脚。有谁知道为什么会这样?

【问题讨论】:

    标签: xml android-studio


    【解决方案1】:

    TableLayout 继承自 LinearLayout,它要求您应用布局权重,以便设置为包装其内容的子视图不会推出其他可能发生的情况。 最好尝试将页眉和页脚项的权重设置为 0.5,将滚动布局设置为 0,并将其高度设置为 0dp,具体原因与 Android 的 LinearLayout 如何解析加权视图有关。

    【讨论】:

    • 不幸的是,该解决方案只会导致滚动视图的内容不出现。仅将权重设置为您的规格会产生与我的帖子中描述的相同的结果。不知道如何进一步追求这个解决方案/如果我在实施它时做错了什么。
    • 将两个表格行和滚动视图 layout_height 更改为 0px 并将 layout_weight 更改为 1 解决了该问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 2016-03-23
    相关资源
    最近更新 更多