Проблемы с версткой Android XWalkView

Ранее я использовал XWalkView во фрагменте с наложенными представлениями в RL.

Теперь я хотел использовать его в Acitvity, но я получаю проблемы визуализации макета и Snackbar больше не работает.

Введите описание изображения здесь

XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    
    
    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 
        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>

Макет является основным Acitvity, это означает, что это в пределах CoordinatorLayout.

Инициализация XWalkView:

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);
    }

}

Зависимость:

compile 'org.xwalk:xwalk_core_library:22.52.561.4'

Знает ли кто-то, почему и как это исправить?

Спасибо!

// РЕДАКТИРОВАТЬ

Я нашел обходной путь. Путем добавлять прокладку 1dp под всем отлично…
Я попробовал XWalkView таким же образом в новом проекте и получил ту же проблему. Возможно, это проблема библиотеки.

1 ответ

  1. Вы не дали намного больше информации о том, как вы получаете свою 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'