控制显示或启用按钮的操作取决于滚动直到webview结束

时间:2018-02-20 06:55:06

标签: android button webview scroll scrollview

我需要在Android活动的布局中显示两个按钮,一个位于webview的顶部,另一个位于底部。

根据用户的滚动位置控制这些按钮的显示和动作。

当启动应用程序的特殊模块/部分时,顶部按钮可见但禁用,用户必须滚动到webview底部,然后才会在屏幕上显示底部按钮。澄清一下,按钮是原生的,不在webview内部或上面。

我准备了嘲笑来解释:

开始屏幕 enter image description here

用户滚动 (显然是阅读协议,这是一个webview)

结束屏幕 enter image description here

如何以这种方式控制按钮的显示?

到目前为止,我已经能够在webview上方和下方显示两个按钮,但我不知道如何隐藏较低的按钮,直到用户滚动到webview的底部。 (或在到达底部时启用,假设默认状态为禁用)

我的layout.xml如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:layout_gravity="center"
android:gravity="center"
android:orientation="vertical"
android:weightSum="1">

<Button
    android:id="@+id/starttop"
    android:layout_width="200dp"
    android:layout_height="0dp"
    android:layout_alignParentTop="true"
    android:layout_weight="0.1"
    android:gravity="center"
    android:text="@string/start_message_top" />

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.8">

    <WebView
        android:id="@+id/explanationwebview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true">

    </WebView>

    <Button
        android:id="@+id/closebutton"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_alignParentRight="true"
        android:background="@drawable/close" />

</RelativeLayout>

<Button
    android:id="@+id/startbottom"
    android:layout_width="200dp"
    android:layout_height="0dp"
    android:layout_alignParentBottom="true"
    android:layout_weight="0.1"
    android:gravity="center"
    android:text="@string/start_message_bottom" />

我相信ScrollView可以帮助我,请指导。

1 个答案:

答案 0 :(得分:0)

我可以使用这种layout.xml文件修复布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:fitsSystemWindows="true"
android:gravity="center"
android:orientation="vertical"
android:weightSum="1">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_gravity="center"
    android:layout_weight="0.1"
    android:gravity="center"
    android:orientation="horizontal">

    <Button
        android:id="@+id/starttop"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:baselineAligned="true"
        android:gravity="center"
        android:text="@string/start_photo_survey" />

    <Button
        android:id="@+id/closebutton"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:layout_alignParentRight="true"
        android:layout_gravity="right|end|center_horizontal"
        android:background="@drawable/close"
        android:baselineAligned="true"
        android:gravity="right|end|center_horizontal" />

</LinearLayout>

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.9">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:weightSum="0.9">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="0.9">

            <WebView
                android:id="@+id/explanationwebview"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_alignParentLeft="true">

            </WebView>

        </RelativeLayout>

        <Button
            android:id="@+id/startbottom"
            android:layout_width="200dp"
            android:layout_height="0dp"
            android:layout_alignParentBottom="true"
            android:layout_gravity="center"
            android:layout_weight="0.1"
            android:gravity="center"
            android:text="@string/start_photo_survey" />

    </LinearLayout>
</ScrollView>

现在,我需要编写onScrollListener来控制禁用/启用按钮的onclick操作。