2012-12-26 92 views
0

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

<TableRow android:layout_gravity="center"> 

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

活动文件包含以下

@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"); 

} 

是否有具体原因的控制总是覆盖整个屏幕宽度。高度属性似乎工作,但无论我用于android:layout_width宽度总是100%的屏幕宽度。 我已经尝试给android:layout_width以及java文件中的多个websettings的多个组合固定值。

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

回答

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> 

+0

使用此,隐藏web视图都在一起。也许是因为webview的内容是使用JS.Its动态加载的,像js这样的谷歌adsense,加载页面加载后的实际内容!将webview高度更改为100dp会使webview再次出现,但宽度变为100% –

-1

奇怪的是,wrappping在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>