2012-06-22 6 views
0

각각 웹보기가 포함 된 두 가지 다른 활동 사이를 전환하려고했습니다. 나는 그것들을 바꿀 때 많은 메모리 문제를 겪고 나는 다음과 같은 것을 시도하고있다 : 나는 똑같은 레이아웃에서 VISIBLE 또는 GONE 두 webviews를 설정한다. webviewA에서 버튼을 누르면 webviewB에 url을로드하고 webviewB onPageFinished()를 호출하면 A가 GONE으로 설정되고 B가 VISIBLE로 설정됩니다. A. 문제로 B에서 동일한 ... URL 만 처음로드이다동일한 레이아웃으로 설정된 웹보기 간 안드로이드 전환

두 webviews이 같은 동일한 레이아웃 설정

,

<RelativeLayout 
       android:id="@+id/aLayout" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_below="@+id/barraSocial"> 

       <WebView 
        android:id="@+id/webviewA" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:autoLink="web" 
        android:textColor="@android:color/black" 
        android:scrollbars="none"/> 
      </RelativeLayout> 

      <RelativeLayout 
       android:id="@+id/bLayout" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_below="@+id/barraSocial"> 
       <WebView 
        android:id="@+id/webviewB" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:autoLink="web" 
        android:textColor="@android:color/black" 
        android:scrollbars="none"/> 
      </RelativeLayout> 

에서 onCreate 활성

final RelativeLayout LayoutA = (RelativeLayout)findViewById(R.id.aLayout); 
final RelativeLayout LayoutB = (RelativeLayout)findViewById(R.id.bLayout); 

webviewA = (WebView) findViewById(R.id.webviewA); 
webviewB = (WebView) findViewById(R.id.webviewB); 

webviewA에 버튼을 클릭하면,

webviewB.loadUrl(UrlVista); 

는,

() webviewB에서 해고되고 onPageFinished
webviewB.setWebViewClient(new WebViewClient() 
     { 
        @Override 
        public void onPageFinished(WebView view, String url) 
        { 
         LayoutA.setVisibility(View.GONE); 
         LayoutB.setVisibility(View.VISIBLE); 
+0

webview b 버튼을 클릭하고 webviewA.setWebViewClient가 구현 되었습니까? – trumpetlicks

+0

예, 이미 구현되었습니다! 게시 된 URL과 동일하지만 B부터 A – Jaume

+0

URL이 처음으로로드되는 경우 초기화 URL 또는 첫 번째 버튼을 클릭 한 후 URL을 의미합니까? 또한 채우기 부모와 함께 둘 다 상대 레이아웃이 있습니다. 처음 정의 된 것이 승리 할 것입니다. 첫 번째 버튼을 누르면 URL이 새 웹 사이트와 함께 표시되며 화면에 표시되지 않습니다. – trumpetlicks

답변

2

두 개의 RelativeLayouts가 있습니다. 하나는 본질적으로 다른 화면을 밀어 내고 있습니다. XML 파일에서

: 대신 당신이 무엇을, 단지 2 webviews 한 상대 레이아웃을 가지고 당신의 onPageFinished

webviewB.setWebViewClient(new WebViewClient(){ 
    @Override 
    public void onPageFinished(WebView view, String url{        
     webviewA.setVisibility(View.GONE); 
     webviewB.setVisibility(View.VISIBLE); 
    } 
}); 

이 본질적으로 설정 한 가시성 그리고

<RelativeLayout android:id="@+id/aLayout"     
    android:layout_width="fill_parent"     
    android:layout_height="fill_parent"     
    android:layout_below="@+id/barraSocial"> 

    <WebView android:id="@+id/webviewA"      
     android:layout_width="fill_parent"         
     android:layout_height="fill_parent"      
     android:autoLink="web"      
     android:textColor="@android:color/black"      
     android:scrollbars="none" 
     android:alignParentLeft="true" 
     android:alignParentTop="true"//> 

    <WebView android:id="@+id/webviewB"      
     android:layout_width="fill_parent"         
     android:layout_height="fill_parent"      
     android:autoLink="web"      
     android:textColor="@android:color/black"      
     android:scrollbars="none" 
     android:alignParentLeft="true" 
     android:alignParentTop="true"/> 

</RelativeLayout> 

을 레이아웃보다는 WebView 자체의 이 경우 레이아웃은 서로의 위에있을 수 있으며 본인의 가시성을 사용하여 실제로 레이아웃을 켜고 끌 수 있습니다.