Android WebView 密度问题
Android WebView density issue
WebView 出现一些问题 class。我在 RelativeLayout 中有一个 WebView。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webViewFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFF00"
android:orientation="vertical" >
<WebView
android:id="@+id/mWebView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="#0000FF"/>
<Button
android:id="@+id/adminBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="Admin" />
</RelativeLayout>
WebView包含在一个Fragment中,代码是这样的
public class WebViewFragment extends Fragment {
private WebView webView;
private Button adminBtn;
private String url = "http://www.my-local.guide"
@SuppressLint("SetJavaScriptEnabled")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.webview_fragment_layout,
container, false);
webView = (WebView) rootView.findViewById(R.id.mWebView);
webView.getSettings().setSupportZoom(false);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDisplayZoomControls(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setInitialScale(120);
webView.setWebViewClient(new WebViewClient() {
});
webView.loadUrl(url);
adminBtn = (Button) rootView.findViewById(R.id.adminBtn);
adminBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showCheckPasswordDialog();
}
});
return rootView;
}
public static WebViewFragment get() {
WebViewFragment fr = new WebViewFragment();
return fr;
}
private void showCheckPasswordDialog() {
CheckPasswordDialog checkPasswordDialog = CheckPasswordDialog.get();
checkPasswordDialog.show(getFragmentManager(), SHOW_PASSWORD_DIALOG);
}
}
WebView 似乎将其宽度缩放到 960px。我在页面上写了一个 js 脚本,它告诉我页面的宽度是 960px。
我需要设置更大的页面宽度才能在我的嵌入式网站中使用 Bootstrap 作为框架。
使用 google.com 作为 url 无论如何我可以获得所有屏幕的宽度,所以我猜测我是否必须使用特定的 css 960ps 宽度规则或者我是否可以修改 WebView 的宽度
感谢您的宝贵时间
最后我修复了它,我正在添加许多覆盖自身的函数
webView = (WebView) rootView.findViewById(R.id.mWebView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setInitialScale(100);
此代码有效
WebView 出现一些问题 class。我在 RelativeLayout 中有一个 WebView。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webViewFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFF00"
android:orientation="vertical" >
<WebView
android:id="@+id/mWebView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="#0000FF"/>
<Button
android:id="@+id/adminBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="Admin" />
</RelativeLayout>
WebView包含在一个Fragment中,代码是这样的
public class WebViewFragment extends Fragment {
private WebView webView;
private Button adminBtn;
private String url = "http://www.my-local.guide"
@SuppressLint("SetJavaScriptEnabled")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.webview_fragment_layout,
container, false);
webView = (WebView) rootView.findViewById(R.id.mWebView);
webView.getSettings().setSupportZoom(false);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDisplayZoomControls(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setInitialScale(120);
webView.setWebViewClient(new WebViewClient() {
});
webView.loadUrl(url);
adminBtn = (Button) rootView.findViewById(R.id.adminBtn);
adminBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showCheckPasswordDialog();
}
});
return rootView;
}
public static WebViewFragment get() {
WebViewFragment fr = new WebViewFragment();
return fr;
}
private void showCheckPasswordDialog() {
CheckPasswordDialog checkPasswordDialog = CheckPasswordDialog.get();
checkPasswordDialog.show(getFragmentManager(), SHOW_PASSWORD_DIALOG);
}
}
WebView 似乎将其宽度缩放到 960px。我在页面上写了一个 js 脚本,它告诉我页面的宽度是 960px。 我需要设置更大的页面宽度才能在我的嵌入式网站中使用 Bootstrap 作为框架。 使用 google.com 作为 url 无论如何我可以获得所有屏幕的宽度,所以我猜测我是否必须使用特定的 css 960ps 宽度规则或者我是否可以修改 WebView 的宽度
感谢您的宝贵时间
最后我修复了它,我正在添加许多覆盖自身的函数
webView = (WebView) rootView.findViewById(R.id.mWebView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setInitialScale(100);
此代码有效