当单击scrollview底部的按钮时,在长滚动视图上方显示叠加视图以填充屏幕

时间:2015-06-07 04:25:48

标签: android android-layout

我有一个滚动视图,它有点长,很容易超出屏幕高度。现在位于滚动视图的底部,有一个按钮,点击该按钮我会执行一些操作。完成这些操作后,我想显示一个填充屏幕的覆盖遮罩。

OverlayLayout

<LinearLayout>
  <ImageView></ImageView>
  <TextView>Loading...</TextView>
</LinearLayout>

ScrollView布局显示为

<ScrollView>
  <LinearLayout>Main content</LinearLayout>
</ScrollView>

我希望覆盖蒙版在ScrollView中相对于屏幕而不是父ScrollView呈现在LinearLayout的顶部。

1 个答案:

答案 0 :(得分:3)

ScrollView只能有一个孩子。我建议做的是这个

在您的布局文件中

<FrameLayout 
    android:layout_height="match_parent"
    android:layout_width="match_parent">


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

        <LinearLayout>Main content</LinearLayout>

    </ScrollView>

    <LinearLayout
        android:id="@+id/overlay_mask"
        android:clickable="true"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:background="#80000000"
        android:gravity="center"
        android:visibility="gone">
        <ImageView></ImageView>
        <TextView>Loading...</TextView>
   </LinearLayout>

</FrameLayout>

在您的代码中使用findViewById()获取LinearLayout视图,并在onClick按钮上将LinearLayout的可见性设置为VISIBLE,当您的操作完成时,即当您需要覆盖蒙版时,只需设置LinearLayout的可见性为GONEandroid:clickable属性将确保在显示覆盖蒙版时它会消耗掉所有触摸事件。 android:background属性将应用半透明的黑色叠加效果。