2017-01-13 22 views
0

私は以前にXWalkViewをRLのオーバーレイビューを含むフラグメントに使用していました。Android XWalkViewレイアウトの問題

今、私はAcitvityで使用したかったのですが、レイアウトレンダリングの問題が発生し、Snackbarはもう動作しません。

enter image description here

XML:

<?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> 

レイアウトは基本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' 

なぜ、どのようにそれを修正するために誰かが知っていますか?

ありがとうございました!

// EDIT

私は回避策を見つけました。すべての下に1dpの詰め物を追加することによって、問題は解決します。 新しいプロジェクトで同じ方法でXWalkViewを試しましたが、同じ問題が発生しました。たぶんそれは図書館の問題です。

答えて

0

あなたが活動にごXWalkViewを得ているが、私はあなたには、いくつかの知識を得ることができることから、例を掲載していますか、について多くの情報を与えていない:

あなたが追加する必要が gradleファイルで
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); 
      } 
     } 
    } 

依存関係が好き:より多くの情報については

compile 'org.xwalk:xwalk_core_library:10.39.235.15' 
+0

、あなたが参照することができます。https://github.com/crosswalk-project/crosswalk/pull/3857/files –

+0

ねえ、あなたの回答に感謝を。しかし、私はそれが初期化の問題だとは思わない。前述のように私は問題なしで同じアプリケーション内のフラグメントでXwalkViewを使用しています。私も同じ初期化を使いました。 – Fintasys

+0

しかし、私は上記のコードを追加しました。ありがとうございました! – Fintasys

関連する問題