2017-11-17 4 views
0

私は問題を抱えています。on mobileモバイルビューを更新するメニューを非表示にする

問題は、ドロップダウンメニューhtml5 + jquery + css3があることです。スマートフォンを回転させると、ウェブがリフレッシュされます。

この私のコードのAndroidメーカー3.0:

活動XML

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.icarosnet.icarosnetsa.IcarosWeb"> 

<WebView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/wv" 
    /> 

</android.support.constraint.ConstraintLayout> 

Main.Java

package com.icarosnet.icarosnetsa; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class IcarosWeb extends AppCompatActivity { 
    WebView wv ; 

    @Override 
    public void onBackPressed(){ 
     if(wv.canGoBack()){ 
      wv.goBack(); 
     }else{ 
      super.onBackPressed(); 
     } 
    } 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_icaros_web); 
     wv= (WebView) findViewById(R.id.wv); 
     wv.getSettings().setJavaScriptEnabled(true); 
     wv.setFocusable(true); 
     wv.setFocusableInTouchMode(true); 
     wv.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH); 
     wv.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 
     wv.getSettings().setDomStorageEnabled(true); 
     wv.getSettings().setDatabaseEnabled(true); 
     wv.getSettings().setAppCacheEnabled(true); 
     wv.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 
     wv.loadUrl("https://icarosnet.com"); 
     wv.setWebViewClient(new WebViewClient()); 
    } 
    @Override 
    protected void onSaveInstanceState(Bundle outState){ 
     super.onSaveInstanceState(outState); 
     wv= (WebView) findViewById(R.id.wv); 
     wv.saveState(outState); 
    } 

    @Override 
    protected void onRestoreInstanceState(Bundle savedInstanceState){ 
     super.onRestoreInstanceState(savedInstanceState); 
     wv= (WebView) findViewById(R.id.wv); 
     wv.restoreState(savedInstanceState); 
    } 

} 

のXmlマニフェスト

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.icarosnet.icarosnetsa"> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 


    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:roundIcon="@mipmap/ic_launcher_round" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".IcarosWeb"> 
      android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

た内容を尊重していませんajaxによって読み込まれました。

ビューを更新してサイズを変更できないようにするにはどうすればよいですか。または私はどのように肖像画だけを表示し、ビューをブロックすることができます。

答えて

0
<activity android:name=".TestActivity" 
android:screenOrientation="portrait"> 

write this line and show it only portrait 
+0

に宣言されるだろうと仮定。 –

+0

[回答] – JimHawkins

0

あなたは自分のActivityが電話を回転させてもlandscapeに回転せずにするmanifestファイルにandroid:screenOrientation = "potrait"activity内部のタグを追加することができます。

0
<activity 
       android:name="YourActivity" 
       android:screenOrientation="portrait" 
       android:configChanges="orientation|keyboardHidden|screenSize"/> 
+0

をご覧ください。単にコードスニペットを提供するのではなく、質問のポスターに役立つように説明してください。 – alptugd

0
@Override 
    protected void onSaveInstanceState(Bundle outState) 
    { 
     super.onSaveInstanceState(outState); 
     wv.saveState(outState); 
    } 

    @Override 
    protected void onRestoreInstanceState(Bundle savedInstanceState) 
    { 
     super.onRestoreInstanceState(savedInstanceState); 
     wv.restoreState(savedInstanceState); 
    } 
0

これを試してみてください: それはWebViewのために状態onPauseが保存されます。

@Override 
public void onPause() { 
    super.onPause(); 
    webViewBundle = new Bundle(); 
    wv.saveState(webViewBundle); 
    } 

OnCreate関数に追加します。

if (webViewBundle == null) { 
wv.getSettings().setJavaScriptEnabled(true); 
wv.setFocusable(true); 
wv.setFocusableInTouchMode(true); 
wv.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH); 
wv.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 
wv.getSettings().setDomStorageEnabled(true); 
wv.getSettings().setDatabaseEnabled(true); 
wv.getSettings().setAppCacheEnabled(true); 
wv.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 
wv.loadUrl("https://icarosnet.com"); 
} else { 
wv.restoreState(webViewBundle); 
} 

を* WVは、この作業の理由のロジックの一部を説明するためにあなたのコードのみの答えを更新してくださいクラス

関連する問題