2017-01-17 11 views
0

Я загружаю WebView в своем приложении. Я включил AppBar, и он отображается, ожидая загрузки WebView. Как только страница загрузится, похоже, что она открывает новую активность и заменяет мой AppBar своим. В этом случае я был бы доволен правильной кнопкой вверх, возвращающейся к родительской активности. (Я бы хотел, чтобы кнопка «Назад» работала так же хорошо, как кнопка «вверх»). В ее нынешнем виде кнопка «Назад» возвращает меня в макет xml, который я не понимаю, как я ушел.Android WebView теряет AppBar

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
tools:context="com.realpayment.app.activities.ReadMessage" 
android:background="@color/c_black"> 

<android.support.v7.widget.Toolbar 
    android:id="@+id/my_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:elevation="4dp" 
    android:theme="@style/JupiterTheme" 
    app:popupTheme="@style/ThemeOverlay.AppCompat"/> 
<WebView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/calledAction" 
    android:layout_margin="15px" 
    android:layout_below="@+id/my_toolbar" 
    android:textColor="@color/c_white" 
    /> 

И я инициализацией мой AppBar в OnCreate с

Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); 
setSupportActionBar(myToolbar); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

Я загрузки веб-страницы с

WebView browser = (WebView) findViewById(R.id.calledAction); 
browser.loadUrl(sCallToActionLink); 

Спасибо за любую помощь!

ответ

0

Попробуйте использовать линейную схему

Используя атрибут веса макета так WebView охватывает столько, сколько места осталось на панели инструментов, а также переопределить shouldOverrideUrlLoading метода, чтобы убедиться, что страница навигация должна быть в вашем WebView

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
orientation="vertical" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
tools:context="com.realpayment.app.activities.ReadMessage" 
android:background="@color/c_black"> 

<android.support.v7.widget.Toolbar 
    android:id="@+id/my_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:elevation="4dp" 
    android:theme="@style/JupiterTheme" 
    app:popupTheme="@style/ThemeOverlay.AppCompat"/> 
<WebView 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    android:id="@+id/calledAction" 
    android:textColor="@color/c_white" 
    /> 
+0

Хорошая идея, но, похоже, она начинает новую деятельность, так что это не сработало. Я пытаюсь сохранить его на этом экране, почти как кадр –

+0

вы загружаете url в webview, как запускается новое мероприятие, я не понял –

+0

Я согласен, я тоже не понимаю. Случается, что я вижу экран, который описан в макете (с пустым для WebView), а затем он анимирует полноэкранный браузер. В этот момент, если я нажму кнопку «Назад», он вернется к пустой компоновке. Это похоже на то, что это новая деятельность, но я честно не знаю, что она делает. –

0

Моя проблема была в том, что я просматривал «http: //» и перенаправлялся на «https: //», что вызывало проблемы. Фиксирование ссылки и представления ведут себя так, как должно быть.