在WebView上方显示ProgressBar,以便在向下滚动WebView时不会隐藏它

时间:2017-06-07 05:38:20

标签: android webview

我有一个ProgressBar作为WebView的孩子,工作正常。

问题是当我向上滚动WebView时,进度条会隐藏。 这是我的activity_main.xml

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.ionicframework.VendeeTouch.MainActivity">




    <WebView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >

        <ProgressBar
            android:id="@+id/progressbar"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_x="5dp"
            android:layout_y="26dp"
            android:padding="2dip"></ProgressBar>

        <TextView
            android:id="@+id/tV1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_x="119dp"
            android:layout_y="286dp"
            android:text="Loading, please wait . . ."
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="#000000"></TextView>
    </WebView>

</RelativeLayout>

如何将它固定在顶部,这样当我向下滚动时它不会隐藏?

4 个答案:

答案 0 :(得分:0)

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.ionicframework.VendeeTouch.MainActivity"
    android:orientation="vertical" >

   <ProgressBar
            android:id="@+id/progressbar"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_x="5dp"
            android:layout_y="26dp"
            android:padding="2dip"></ProgressBar>


    <WebView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >



        <TextView
            android:id="@+id/tV1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_x="119dp"
            android:layout_y="286dp"
            android:text="Loading, please wait . . ."
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="#000000"></TextView>
    </WebView>

</LinearLayout>

答案 1 :(得分:0)

将windowSoftInputMode设置为 adjustResize ,以用于您在其中使用此Web视图的活动。它会调整屏幕。

   <activity android:name=".Your Activity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustResize">
    </activity>

答案 2 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorPrimary" >

    <LinearLayout
        android:layout_width="match_parent"
        android:id="@+id/removeWebView"
        android:background="@color/colorPrimary"
        android:orientation="vertical"
        android:layout_centerHorizontal="true"
        android:layout_height="match_parent">
        <WebView
            android:id="@+id/webViewPage"
            android:background="@color/colorAccent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            />
    </LinearLayout>

    <ProgressBar
        android:id="@+id/progressBar"
        android:layout_width="37dp"
        android:layout_height="37dp"
        android:gravity="center"
        android:indeterminateDrawable="@drawable/circularprogressbar_webkit"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" />
</RelativeLayout>

use above xml and enjoy
circularprogressbar_webkit.xml  in drawable
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toDegrees="360" >

    <shape
        android:innerRadiusRatio="3"
        android:shape="ring"
        android:thicknessRatio="9"
        android:useLevel="false" >
        <size
            android:width="76dip"
            android:height="76dip" />

        <gradient
            android:angle="0"
            android:endColor="@color/colorAccent"
            android:startColor="@color/colorPrimary"
            android:type="sweep"
            android:useLevel="false" />
    </shape>

</rotate>

答案 3 :(得分:0)

将ProgressBar置于WebView之外

<ProgressBar
    android:id="@+id/progressbar"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="2dip" />
<WebView
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@+id/progressbar">
    <TextView
        android:id="@+id/tV1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Loading, please wait . . ."
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="#000000" />
</WebView>

加载完成后,您可以将高度设置为0。 像这样

        ProgressBar p=(ProgressBar)findViewById(R.id.progress);

        p.setLayoutParams(new LinearLayout .LayoutParams(LinearLayout .LayoutParams.MATCH_PARENT,0));