編輯:關於Android編程
項目要求用戶注冊成功後進入修改個人資料的頁面,且不允許返回到上一個頁面,資料修改完成後結束當前頁面,進入APP主頁。
由於是使用多個Fragment完成注冊流程,就需要Fragment監聽用戶點擊手機上的返回按鈕,查了一些資料,加上自己使用過程中發現的問題,特此記錄,幫助更多有此需求的朋友
XXX_Fragment
@Override
public void onResume() {
super.onResume();
getFocus();
}
//主界面獲取焦點
private void getFocus() {
getView().setFocusableInTouchMode(true);
getView().requestFocus();
getView().setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) {
// 監聽到返回按鈕點擊事件
......
return true;
}
return false;
}
});
}
以上代碼是stackoverflow.com
中找到的一個解決方案,但是在使用時,由於Fragment頁面裡可能有其他能獲取焦點的View(例如EditText),會導致監聽失效,點擊返回鍵會返回到上個頁面。
除了上面的代碼,我們需要對可以獲取焦點的View的setOnKeyListener
進行處理,這裡以一個EditText為例:
//private EditText nickname;
nickname.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_UP) {
//關閉軟鍵盤
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(nickname.getWindowToken(), 0);
//使得根View重新獲取焦點,以監聽返回鍵
getFocus();
}
return false;
}
});
小編也曾經遇到過連續幾天都打不開新浪微博的圖片,一開始還以為新浪微博的服務器出問題了!於是問問朋友們有沒這種問題,然而他們都沒出現。於是小編就自己研究了一下
仿水波紋流球進度條控制器,Android實現高端大氣的主流特效,供大家參考,具體內容如下效果圖:CircleView這裡主要是實現中心圓以及水波特效package com
ActionBar是3.0後的UI設計規范,同時也是Google極力推薦使用的設計風格,如何快速設計一個入眼的ActionBar呢,更進一步,給我們搭好一個入眼的Acti
這是在了解下拉刷新功能原理下的產物,下拉刷新可以說是國產APP裡面必有的功能,連Google都為此出了SwipeRefreshLayout,一種MD風格的下拉刷新。 不過