android - Fragment中的WebView如何監聽其返回監聽事件?
問題描述
我在Fragment的布局中放置了一個WebView,想監聽WebView的返回鍵,該如何實現?
@Override public void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);getView().setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) {if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { webview.goBack(); return true;}return false; }}); }
這樣監聽沒用
問題解答
回答1:Fragment 本身是沒有 Activity#onBackPressed() 這樣的接口的, 所以需要 Activity 主動通知 Fragment :
public class ActivityA extends Activity { ... ...@Override public void onBackPressed() {FragmentA fragment = findFragmentA();if (fragment.onBackPressed()) { return ;}super.onBackPressed(); }}public class FragmentA extends Fragment { public boolean onBackPressed() {if (webview.canGoBack()) { webview.goBack(); return true;}return false; }}
相關文章:
1. boot2docker無法啟動2. 關docker hub上有些鏡像的tag被標記““This image has vulnerabilities””3. docker-compose中volumes的問題4. javascript - mock.js可以存儲數據嗎5. nignx - docker內nginx 80端口被占用6. java - SSH框架中寫分頁時service層中不能注入分頁類7. docker安裝后出現Cannot connect to the Docker daemon.8. dockerfile - 為什么docker容器啟動不了?9. golang - 用IDE看docker源碼時的小問題10. docker api 開發的端口怎么獲取?

網公網安備