Android:如何将页脚添加到全屏滚动视图?

发布于 2024-11-30 17:36:39 字数 506 浏览 1 评论 0原文

我希望页脚锚定在屏幕底部当且仅当它可以锚定在那里而不与任何其他视图重叠时。

问题是我不知道有多少视图将添加到页眉或页脚。

如果将页脚放在窗口底部会使其重叠,我想将页脚放在滚动视图的底部。 (也许可以将其添加到RelativeLayout中,并遵循它需要位于顶部组件下方的规则?)

这是我想要得到的图片:

期望的结果

其中:

1)RelativeLayout 包含顶部的 TableLayout 和底部的 LinearLayout。

2) 随着 TableRows 添加到其中,TableLayout 向下扩展。

3)当视图添加到 LinearLayout 时,LinearLayout 从底部向上扩展。

~~~

我希望滚动视图的大小增长到足以容纳组件而不重叠。

预先感谢如此出色的社区支持

I want the footer to be anchored at the bottom of the screen if and only if it can be anchored there without overlapping any other views.

The problem is that I don't know how many views are going to be added to the header or the footer.

If putting the footer at the bottom of the window would make it overlap, I want to put the footer at the bottom of the scrollview. (Maybe by adding it to the RelativeLayout with the rule that it needs to be below the top component?)

Here is a pic of what I'm trying to get:

desired result

Where:

1)The RelativeLayout contains both the TableLayout at the top, and the LinearLayout at the bottom.

2)The TableLayout expands downwards as TableRows get added to it.

3)The LinearLayout expands up from the bottom as views get added to it.

~~~

I'd like for the scrollview to grow in size only enough to fit the components without overlapping.

Thanks in advance for such awesome community support

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酷到爆炸 2024-12-07 17:36:39

我认为你可以用线性布局来解决它。您可以在线性布局中设置三个块:页眉、正文、页脚。将 body 设置为 fill_parent 且layout_weight=1,这样 body 将扩展以填充页眉和页脚从父级中取出部分后剩下的内容。整个结构放入ScrollView中。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TableRow><TextView android:text="Text1"/></TableRow>
            <TableRow><TextView android:text="Text2"/></TableRow>
        </TableLayout>
        <RelativeLayout 
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <TextView 
                android:text="@string/lorem_ipsum"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        </RelativeLayout>
        <LinearLayout 
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView
                android:text="Text3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
            <TextView
                android:text="Text4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        </LinearLayout>
    </LinearLayout>
</ScrollView>

我在 Android 2.1 的模拟器中对此进行了测试,看起来它可以工作。

I think you can solve it in linear layout. You set three blocks in linear layout: header, body, footer. Set body to fill_parent and layout_weight=1, this way body will expand to fill what left after header and footer taken its part from parent. Whole structure place into ScrollView.

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TableRow><TextView android:text="Text1"/></TableRow>
            <TableRow><TextView android:text="Text2"/></TableRow>
        </TableLayout>
        <RelativeLayout 
            android:layout_weight="1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <TextView 
                android:text="@string/lorem_ipsum"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        </RelativeLayout>
        <LinearLayout 
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <TextView
                android:text="Text3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
            <TextView
                android:text="Text4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>
        </LinearLayout>
    </LinearLayout>
</ScrollView>

I tested this in Emulator of Android 2.1 and it looks it works.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文