1

私はAndroidアプリを開発していますが、奇妙な問題に悩まされています。

ボタン1とボタン2の2つのボタンがあります

ボタンをクリックすると、アセットフォルダからさまざまなhtmlファイルをロードしています。

これは、すべてのバージョンのエミュレーターで正常に機能していますが、Android 4.0以降を搭載した実際のデバイスでは、奇妙な動作を実行します。

button2の場合、正常に機能しており、WebビューにHTMLページが動的に表示されますが、button1をクリックすると、Webビューに白いページが表示されます。

xmlとアクティビティのIDと名前を除いて同じコードを使用しているときに、なぜそうなるのか驚いています。

私はたくさんのことを試し、検索しましたが、なぜそれが1つで起こっているのに、別では起こっていないのかわかりませんでしたか?

button1のXMLは次のとおりです。

<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"
    android:background="@drawable/xxx">

            <WebView

                android:id="@+id/webViewButton1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@android:color/transparent"
                android:layerType="software" />

</LinearLayout>

button2のXMLは次のとおりです。

<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"
    android:background="@drawable/xxxx">

            <WebView
                android:id="@+id/webViewButton2"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@android:color/transparent"
                android:layerType="software" />
</LinearLayout>

Button1アクティビティコード:

@SuppressLint("DefaultLocale")
public class Button1Activity extends Activity {
    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_button1);
        savedInstanceState = getIntent().getExtras();

        String sign = null;
        sign = savedInstanceState.getString("button1");

        webView = (WebView) findViewById(R.id.webViewButton1);
        webView.setBackgroundColor(0);
        webView.loadUrl("file:///android_asset/" + sign + ".html");
    }
}

Button2アクティビティコード:

@SuppressLint("DefaultLocale")
public class Button1Activity extends Activity {
    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_button2);
        savedInstanceState = getIntent().getExtras();

        String sign = null;
        sign = savedInstanceState.getString("button2");

        webView = (WebView) findViewById(R.id.webViewButton2);
        webView.setBackgroundColor(0);
        webView.loadUrl("file:///android_asset/" + sign + ".html");
    }
}

案内してください。

4

1 に答える 1

2

私は自分の問題を解決しました。

実際、私は上記の線形レイアウトをスクロールビューの下に置いて線形レイアウトをスクロールしていました。このスクロールビューを削除すると、Webビューが正常に機能し始め、Webビューの高さいっぱいになると、コンテンツに垂直スクロールが自動的に追加されます。

そのため、このことから、 WebViewがスクロールビューでは正しく機能しないことを学びました。

于 2013-03-30T07:27:50.610 に答える