1. 程式人生 > >fragment處理物理返回鍵

fragment處理物理返回鍵

fragment監聽返回鍵。有時候在activity中點選了物理返回鍵,不只是返回上一層。所以這時候需要在fragment中處理物理返回鍵的事件。

首先建立一個介面

public interface FragmentBackListener {
 
	void  onbackForward(); 
}

宿主在宿主activity中:

public class MainActivity extends Activity {

	private FragmentBackListener backListener;
	private boolean isInterception = false;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	}

	public FragmentBackListener getBackListener() {
		return backListener;
	}

	public void setBackListener(FragmentBackListener backListener) {
		this.backListener = backListener;
	}

	public boolean isInterception() {
		return isInterception;
	}

	public void setInterception(boolean isInterception) {
		this.isInterception = isInterception;
	}

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

			if (isInterception()) {
				if (backListener != null) {
					backListener.onbackForward();
					return false;
				}
			}

		}
		return super.onKeyDown(keyCode, event);
	}

}

在fragment中
public class MFragment extends Fragment implements FragmentBackListener{


	@Override
	public void onAttach(Activity activity) {
		// TODO Auto-generated method stub
		super.onAttach(activity);
		if(activity instanceof MainActivity){
			((MainActivity)activity).setBackListener(this);
			((MainActivity)activity).setInterception(true);
		}
	}
	
	@Override
	public void onDetach() {
		super.onDetach();
		if(getActivity() instanceof MainActivity){
			((MainActivity)getActivity()).setBackListener(null);
			((MainActivity)getActivity()).setInterception(false);
		}
	}

	@Override
	public void onbackForward() {
		// 處理fragment的返回事件
		
	}
	
}

相關推薦

fragment處理物理返回

fragment監聽返回鍵。有時候在activity中點選了物理返回鍵,不只是返回上一層。所以這時候需要在fragment中處理物理返回鍵的事件。 首先建立一個介面 public interface FragmentBackListener { void onb

js實現對Android裝置物理返回單擊/雙擊事件處理(Framework7框架)

單擊事件: //裝置返回鍵 document.addEventListener(“backbutton”, onBackKeyDown, false); function onBackKeyDown

js history對象 手機物理返回

部分 方式 span 兩個 字符 ie 8 javascrip 歷史 就會 有興趣的可以了解下history對象,不感興趣也可以直接跳到手機物理返回鍵監聽部分 ******************【history對象】有length屬性,go()/back()/forwar

Android 在fragment中實現返回單擊提醒 雙擊退出

make listener 一次 time lean 適配器 == sea dagger2 嘗試用mvp架構加dagger2來重寫了一下,大致功能都實現了,還沒有全部完成。 項目地址 接近完成的時候,想在天氣信息頁面實現一個很常見的功能,也就是點擊屏幕下方的返回鍵的時

js屏蔽手機的物理返回

gpo window 返回鍵 屏蔽 doc sha 必須 his pre $(document).ready(function() { if (window.history && window.history.pushState) {

JS使用 popstate 事件監聽物理返回

function 事件監聽 bsp als ref listen hist inf UNC pushHistory(); window.addEventListener("popstate", function (e) { i

mui中同一個頁面按物理返回只關閉彈窗,不返回上一個頁面

若一個頁面中存在彈窗,在彈窗開啟的狀態下,點選物理返回鍵只要求關閉當前彈窗,而不是返回上一頁面,再次點選物理鍵時才會返回上一頁面,有以下解決方法。 step1:進入頁面時先禁用物理返回鍵,此時還能監聽到返回鍵,只是不執行返回 mui.init({ beforeback:func

vue裡監聽安卓的物理返回

Hybrid App中,原生內嵌H5單頁,按安卓物理返回鍵的時候會返回到上一個路由, 實際中需求是:當有彈層的時候,按物理返回鍵是關閉彈層,是頁面的時候才執行返回上一個路由, 開始的方案是Android原生重寫方法onKeyDown(),H5 JsBridge js去呼叫方法,當需要的時候遮蔽物理返回鍵,

Android主介面連續兩次點選物理返回提示退出應用功能實現

實現內容:當點選一次 back 鍵時,程式提示“再按一次退出程式” ,當點選兩次 back 鍵,兩次之間的時間小於 3s 時,App就退出。  實則是對按鍵back監聽。 重寫onKeyDown(),監聽back 宣告兩個常量: /** 上次點選返回鍵的時間 */ p

apicloud監聽物理返回

雙擊退出 function exitApp(){ api.addEventListener({ name: 'keyback' }, function(ret, err){ api.toast({ msg: '

react-navigation 使用的整體框架 安卓物理返回

一、"react-navigation": "^1.0.0-beta.22" 低版本的使用 建立兩個資料夾專門來寫導航的頁面 1、TabNavigator 專門來寫Tab欄上的頁面(tab欄上的每個頁面的導航都可以在元件中設定,新版本的導航會統一寫一個頁面) impor

H5頁面監聽Android物理返回

Android物理返回鍵的點選事件,一般webview的預設行為是 window.history.go(-1) ,但是在實際需求場景下,簡單的頁面回退並不能滿足需求,所以需要H5頁面監聽Android物理返回鍵從而自定義處理方法。 本方案的程式碼都在 h5_android_back 倉庫中 原理 主要是

如何監聽Android手機物理返回

概述 window.onpopstate是popstate事件在window物件上的事件控制代碼. 每當處於啟用狀態的歷史記錄條目發生變化時,popstate事件就會在對應window物件上觸發. 如果當前處於啟用狀態的歷史記錄條目是由history.pushSta

Android 設定Dialog不允許物理返回退出

有時候需要執行一段耗時任務的時候,需要出現一個等待(就是一個白色小圓環一直轉的那個)Dialog來告訴使用者現在需要等一會,因為在做耗時的事情,可是Dialog可以設定防止點選外面取消Dialog,我忘了物理返回鍵也可以取消Dialog,所以上網查詢資料總結如下。1,直接設定

Fragment監聽返回Fragment響應Activity的onKeyDown事件)Kotlin版

在Fragment不僅僅只可以監聽返回鍵哦,所有你見過的按鍵都可以監聽,什麼A~Z,0~9,F1~F12等等我就不舉例子了。至於為什麼寫這篇部落格,因為我的專案是一個Activity+多個Fragment架構的,下面進入正題。。。。直接上程式碼(原創轉載請標明) overrid

react-native 監聽Android物理返回

1、componentWillMount(){ BackHandler.addEventListener('hardwareBackPress', this.onBackAndroid)

h5監聽任何 App 自帶的返回,以及安卓機裡的物理返回

var hiddenProperty = 'hidden' in document ? 'hidden' : 'webkitHidden' in document ? 'webkitHidden' : 'mozHidden' in document ?

Fragment中重寫返回以及WebView載入重定向頁面返回問題

首先我是實現一個PagerView的頁面滑動效果,並在裡面添加了兩個Fragment當作子頁面。其中一個Fragment中使用WebView顯示網頁。 於是遇到了這樣的問題:  1、使用網頁的時候,從一個頁面跳到另一個頁面,當想返回上一個頁面時,點選返回按鈕,應用直接就退出

JavaScript監聽手機物理返回

JavaScript沒有監聽物理返回鍵的API,所以只能使用 popstate 事件監聽。 有兩個解決辦法: 1、返回到指定的頁面 pushHistory();

js中監聽回車鍵、物理返回(Android)

監聽回車鍵 //監聽某個輸入框 //回車事件繫結 $('#search_input').bind('keyup', function(event) { if (event.keyCode == "13") { //回車執