0

我一直在尝试使用 TableLayout 在屏幕上向我的 Android 应用程序添加一个 Webview 控件不幸的是,无论我尝试什么,webview 总是覆盖屏幕的整个宽度布局文件包含以下代码

<TableRow android:layout_gravity="center">

    <WebView
        android:id="@+id/someid"
        android:layout_width="wrap_content" 
        android:layout_height="100dp">
    </WebView>
</TableRow>

Activity 文件包含以下内容

@Override protected void onFinishInflate(){

    WebSettings webSettings = mywebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setBuiltInZoomControls(true);
    webSettings.setUseWideViewPort(true);
    webSettings.setLoadWithOverviewMode(true);
    webSettings.setLayoutAlgorithm(LayoutAlgorithm.NORMAL);
    mywebView.setScrollContainer(false);
    mywebView.addJavascriptInterface(new WebAppInterface(context), "Android");

}

控件总是覆盖整个屏幕宽度是否有任何具体原因。height 属性似乎有效,但我用于android:layout_width宽度的总是 100% 的屏幕宽度。我尝试为android:layout_widthjava 文件中的 websettings 提供一个固定值以及多个组合。

任何线索为什么会发生这种情况?

4

2 回答 2

0

您必须首先定义tableRow. 例如: layout_width 和 layout_height 里面tableRow

<TableRow android:layout_gravity="center"
          android:layout_width="wrap_content"
          android:layout_height="100dp">
<WebView
    android:id="@+id/someid"
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent">
</WebView>

于 2012-12-26T13:06:39.293 回答
-1

奇怪的是,将控件包装在 LinearLayout 中解决了这个问题

  <LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android" 
  android:layout_gravity="center"
  android:layout_width="wrap_content"
  android:orientation="vertical" 
  android:layout_height="wrap_content"> 
     <WebView
        android:id="@+id/someid"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
         android:layout_width="250px"
         android:orientation="vertical" 
        >
     </WebView>
  </LinearLayout>
于 2012-12-27T14:22:21.737 回答