我之前在片段中使用XWalkView并在RL中使用叠加视图。
现在我想在Acitvity中使用它,但是我遇到了布局渲染问题而且Snackbar不再工作了。
XML:
System.Int32.TryParse
布局是基本的活动,这意味着它在CoordinatorLayout中。
XWalkView初始化:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".GenerateActivity"
tools:showIn="@layout/activity_generate">
<org.xwalk.core.XWalkView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<!--<WebView
android:layout_width="match_parent"
android:layout_height="match_parent">
</WebView>-->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentTop="true"
android:background="@drawable/btn_default"
android:elevation="4dp"
android:visibility="visible"
android:id="@+id/ll_seat_mode_info"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:layout_marginTop="16dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="With normal WebView"
android:textColor="@color/colorAccent" />
</LinearLayout>
</RelativeLayout>
相关性:
public class GenerateActivity extends AppCompatActivity {
Snackbar snackbar;
View snackView;
XWalkView lWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_generate);
// Toolbar
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if(toolbar != null) {
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
}
initWebView();
// Snackbar Code...
}
private void initWebView() {
lWebView = (XWalkView) findViewById(R.id.webView);
lWebView.clearCache(true);
File lFile = new File("android_asset/index.html");
XWalkPreferences.setValue("enable-javascript", true);
XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, false);
lWebView.load("file:///" + lFile.getAbsolutePath(), null);
}
}
有人知道为什么以及如何解决这个问题?
谢谢!
//编辑
我找到了解决方法。通过在下面添加1dp填充,一切都很好...... 我在新项目中以相同的方式尝试了XWalkView并遇到了同样的问题。也许这是图书馆的一个问题。
答案 0 :(得分:0)
您没有提供更多有关您如何获得XWalkView
活动的信息,但我发布了一个示例,您可以获得一些知识:
import android.app.Activity;
import android.os.Bundle;
import org.xwalk.core.XWalkResourceClient;
import org.xwalk.core.XWalkUIClient;
import org.xwalk.core.XWalkView;
public class MyActivity extends Activity {
XWalkView mXwalkView;
class MyResourceClient extends XWalkResourceClient {
MyResourceClient(XWalkView view) {
super(view);
}
@Override
WebResourceResponse shouldInterceptLoadRequest(XWalkView view, String url) {
// Handle it here.
...
}
}
class MyUIClient extends XWalkUIClient {
MyUIClient(XWalkView view) {
super(view);
}
@Override
void onFullscreenToggled(XWalkView view, String url) {
// Handle it here.
...
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
mXwalkView = new XWalkView(this, null);
setContentView(mXwalkView);
mXwalkView.setResourceClient(new MyResourceClient(mXwalkView));
mXwalkView.setUIClient(new MyUIClient(mXwalkView));
mXwalkView.load("http://www.google.com", null);
}
@Override
protected void onPause() {
super.onPause();
if (mXwalkView != null) {
mXwalkView.pauseTimers();
mXwalkView.onHide();
}
}
@Override
protected void onResume() {
super.onResume();
if (mXwalkView != null) {
mXwalkView.resumeTimers();
mXwalkView.onShow();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mXwalkView != null) {
mXwalkView.onDestroy();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (mXwalkView != null) {
mXwalkView.onActivityResult(requestCode, resultCode, data);
}
}
@Override
protected void onNewIntent(Intent intent) {
if (mXwalkView != null) {
mXwalkView.onNewIntent(intent);
}
}
}
在gradle
文件中,您必须添加依赖项,如:
compile 'org.xwalk:xwalk_core_library:10.39.235.15'