我需要在Android活动的布局中显示两个按钮,一个位于webview的顶部,另一个位于底部。
根据用户的滚动位置控制这些按钮的显示和动作。
当启动应用程序的特殊模块/部分时,顶部按钮可见但禁用,用户必须滚动到webview底部,然后才会在屏幕上显示底部按钮。澄清一下,按钮是原生的,不在webview内部或上面。
我准备了嘲笑来解释:
用户滚动 (显然是阅读协议,这是一个webview)
如何以这种方式控制按钮的显示?
到目前为止,我已经能够在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可以帮助我,请指导。
答案 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操作。