我一直在尝试使用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>
活动文件包含以下内容
@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_width
一个固定值以及java文件中的多个websettings组合。
为什么会发生这种情况的任何线索?
答案 0 :(得分:0)
您必须首先定义tableRow
的参数。例如:
tableRow
内的layout_width和layout_height:
<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>
答案 1 :(得分:-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>