滚动时始终在屏幕底部显示 LinearLayout 中的按钮

Posted

技术标签:

【中文标题】滚动时始终在屏幕底部显示 LinearLayout 中的按钮【英文标题】:Show Button in LinearLayout always on Bottom of the screen while Scrolling 【发布时间】:2015-06-05 19:57:37 【问题描述】:

我有一个带有一些元素的 LinearLayout,它位于 ScrollView 中。 现在我想在屏幕底部有一个按钮(而不是在 ScrollView 的底部),它总是显示在前面,同时滚动这个布局的其余内容。我怎样才能做到这一点?

这是我的滚动视图:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:fillViewport="true"
    android:background="#e2e2e2">

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/bgnLayout"
        android:layout_
        android:layout_
        android:orientation="vertical">

        <include
            layout="@layout/trElement"
            android:layout_
            android:layout_
            android:layout_margin="16dp" />

        <LinearLayout
            android:id="@+id/stopslayout"
            android:layout_
            android:layout_
            android:orientation="vertical"
            android:layout_margin="16dp"
            android:showDividers="middle"
            android:divider="@drawable/divider">

        </LinearLayout>


    </LinearLayout>

</ScrollView>

这就是代码中我添加当前按钮的部分(始终显示在 ScrollView 的底部):

Button mpbtn = ButtonFactory.makeButton(m, R.string.openMap, R.color.AndroidBlue);
LinearLayout bgnLayout = (LinearLayout) rootView.findViewById(R.id.bgnLayout);
bgnLayout.addView(mpbtn);

感谢您的帮助。

【问题讨论】:

为什么不直接在xml底部添加按钮? 【参考方案1】:

如果您可以像这样将按钮添加到 xml 中,那么当您希望在活动类中时,您可以使按钮可见和不可见。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/parentLayout"
            android:layout_
            android:layout_
          >
    <ScrollView 
        android:layout_
        android:layout_
        android:fillViewport="true"
        android:background="#e2e2e2">
    /////



    </ScrollView>

    <Button
     android:layout_
        android:layout_
      android:layout_alignParentBottom="true"
    />
    </RelativeLayout>

【讨论】:

@timon93 请接受它作为答案 你为什么大喊大叫? 这不是我的大写锁定打开的喊叫声。这只是一个提醒......非常感谢。 没问题。另一个问题:现在我的按钮总是在前面,但是当我在 ScrollView 中向下滚动时,按钮位于列表的最后一个元素上。如何在 Button 开始之前结束 ScrollView? 为此,您可以采用不同的方式,例如在滚动视图中包含 android:layout_above="button id" 或为按钮设置特定高度并在滚动视图中设置 android:layout_marginBottom="heightofbutton"。

以上是关于滚动时始终在屏幕底部显示 LinearLayout 中的按钮的主要内容,如果未能解决你的问题,请参考以下文章

h5滚动屏幕之后,绝对定位位置不在页面最底部

进入聊天屏幕时,如何在默认情况下在底部显示最近消息的位置显示对话?

Android:在键盘显示中,将 ScrollView 固定到底部

CSS:即使在滚动时也使页脚始终位于页面底部

使用可滚动的 ActionBar 始终显示元素

Android:为什么TextView中的文本在LinearLayout中滚动而在Recyclerview中滚动