2016-04-26 4 views
1

Я создал веб-просмотр как оверлей поверх другого веб-представления и сомневался в реализации второй кнопки web-браузера. Моя цель - если я нажму кнопку «Назад», она должна перейти к первому веб-просмотру. Это моя страница XML:Функциональность кнопки «Назад» не работает должным образом

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout 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" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:context="com.app.MainActivity" 
tools:showIn="@layout/activity_main"> 

<WebView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/activity_main_webview"/> 
<WebView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="45dp" 
    android:id="@+id/external_webview"> 
</WebView> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:id="@+id/ext_link" 
    android:layout_height="fill_parent"> 
    <RelativeLayout android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:background="#FFFFFF" 
     android:layout_height="45dp" 
     android:weightSum="1"> 
     <Button 
      android:id="@+id/backtonews" 
      android:layout_marginTop="7dp" 
      android:layout_width="190dp" 
      android:layout_height="30dp" 
      android:background="@drawable/button"> 
     </Button> 
    </RelativeLayout> 
</RelativeLayout> 

</FrameLayout> 

Эта функциональность, которую я написал для кнопки возврата

news.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       exWebView.setVisibility(View.GONE); 
       mWebView.setVisibility(View.VISIBLE); 
      } 
     }); 

Теперь если я нажимаю кнопку назад задняя functinality не работает и содержимое наложения WebView (2-й веб-просмотр) увеличен, как если бы он был увеличен. Просьба направлять меня в моем коде. Он содержит какие-либо ошибки? Спасибо заранее.

Редактировать

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

+0

попробовать написать 'news.bringToFront()' сразу после setOnClick. –

+0

после функция? –

+0

да .. попробуйте. или написать его как последнюю строку вашего onCreate. Попробуйте оба варианта и посмотрите, работает ли он? –

ответ

0

Если вы хотите обработать обратную кнопку, нажмите кнопку, затем вы должны переопределить onKeyDown.

Вот пример

@Override 
public boolean onKeyDown (int keyCode, KeyEvent event) { 
if ((keyCode == KeyEvent.KEYCODE_BACK)) { 

      //HERE YOU WILL HANDLE THE BACK BUTTON CLICKS 

      exWebView.setVisibility(View.GONE); 
      mWebView.setVisibility(View.VISIBLE); 
    return true; 
} 
return super.onKeyDown(keyCode, event); 
} 

Надеется, что это помогает

+0

У меня есть кнопка в моем приложении, но я должен использовать этот метод? –

+0

Нет, это для кнопки возврата по умолчанию, я думал, что вы пытаетесь использовать ее по умолчанию, хорошо попробуйте и посмотрите, работает ли она там. – Max

+0

Я хочу, чтобы кнопка, которую я разместил в оверлейном веб-просмотре. Кнопка возврата по умолчанию закроет приложение. Вот как я написал функциональность. –

Смежные вопросы