1

我正在开发一个 Android 应用程序,但遇到了一个奇怪的问题。

我有两个按钮:button1 和 button2

单击按钮时,我正在从资产文件夹加载不同的 html 文件。

这在所有版本的模拟器上都可以正常工作,但在具有 Android 4.0 或更高版本的真实设备上,执行奇怪的行为。

对于 button2,它工作正常并在 Web 视图中动态显示 html 页面,但是在单击 button1 时,它在 Web 视图中显示一个白页。

我很惊讶为什么会发生这种情况,而 xml 和活动除了它们的 ID 和名称之外具有相同的代码。

我已经尝试了很多东西并进行了搜索,但不明白为什么它会发生在一个而不是另一个?

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

我解决了我的问题。

其实我是把上面的线性布局放在滚动视图下滚动线性布局。当我删除这个 Scroll 视图时,我的 web 视图开始正常工作,它会在填充 web 视图高度时自动向内容添加垂直滚动。

所以我从中了解到,WebView 在滚动视图下无法正常工作。

于 2013-03-30T07:27:50.610 回答