1. 程式人生 > >Android專案類似淘寶 電商 搜尋功能,監聽軟鍵盤搜尋事件,延遲自動搜尋,以及時間排序的搜尋歷史記錄的實現

Android專案類似淘寶 電商 搜尋功能,監聽軟鍵盤搜尋事件,延遲自動搜尋,以及時間排序的搜尋歷史記錄的實現

最近跳槽去新公司,接受的第一個任務是在 一個電商模組的搜尋功能以及搜尋歷史記錄的實現。

需求和淘寶等電商的功能大體差不多,最上面一個搜尋框,下面顯示搜尋歷史記錄。在EditText裡輸入要搜尋的關鍵字後,按軟鍵盤的搜尋按鍵/延遲xxxxms後自動搜尋。然後將搜尋的內容展示給使用者/提示使用者沒有搜到相關資訊。

歷史記錄是按時間排序的,最新的在前面,輸入以前搜尋過的關鍵字,例如牛仔褲(本來是第二條),會更新這條記錄的時間,下次再看,牛仔褲的排列就在第一位了。並且有清除歷史記錄的功能。

整理需求,大致需要做的工作如下:

功能部分:

一,點選EditText,彈出軟鍵盤輸入法,右下鍵為【搜尋】字樣。

二,監聽軟鍵盤輸入法按下【搜尋】事件。

三,在EditText輸入內容後,1000ms內無修改則 自動搜尋功能。

四,儲存按時間排序的歷史記錄,

五,清除歷史記錄

六,點選歷史記錄條目,將內容填充至EditText並自動執行搜尋功能。

UI示意圖如下:



===============UI的實現==================

搜尋Header頭部:

整體是一個水平方向LinearLayout,依次放置ImageVIew(返回箭頭),EditText(搜尋框),TextView(取消)。

佈局檔案如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 <LinearLayout android:layout_width="match_parent" android:layout_height="45dp" android:background

相關推薦

Android專案類似 搜尋功能鍵盤搜尋事件延遲自動搜尋以及時間排序搜尋歷史記錄實現

最近跳槽去新公司,接受的第一個任務是在 一個電商模組的搜尋功能以及搜尋歷史記錄的實現。 需求和淘寶等電商的功能大體差不多,最上面一個搜尋框,下面顯示搜尋歷史記錄。在EditText裡輸入要搜尋的關鍵字後,按軟鍵盤的搜尋按鍵/延遲xxxxms後自動搜尋。然後將搜尋

Android 類似 搜尋功能鍵盤搜尋事件延遲自動搜尋以及時間排序搜尋歷史記錄實現

最近跳槽去新公司,接受的第一個任務是在 一個電商模組的搜尋功能以及搜尋歷史記錄的實現。 需求和淘寶等電商的功能大體差不多,最上面一個搜尋框,下面顯示搜尋歷史記錄。在EditText裡輸入要搜尋的關鍵字後,按軟鍵盤的搜尋按鍵/延遲xxxxms後自動搜尋。然後將搜尋的內容展示給

android 真正鍵盤得彈起和收

 在開發中我們有時需要監聽鍵盤得變化情況  Softkeyboardlistener.class 工具類   public class Softkeyboardlistener { private View rootView;//activity的根

Android實時鍵盤顯示或隱藏

搞了一個實時監聽軟鍵盤顯示或隱藏,當軟鍵盤隱藏了,做邏輯;軟鍵盤顯示出來了,做邏輯; 直接上程式碼了,下面是我寫的工具類,名字為 SoftKeyBoardListener : import android.app.Activity; import android.graphics.

android 鍵盤在頁面的展開和隱藏

獲取軟鍵盤狀態思路: 獲取當前頁面根佈局及其高度 RootH; 獲取狀態列高度 StatusH和導航欄高度 NavigationH; 獲取當前根檢視在螢幕上顯示的高度RectH; 高度差值比較,(根佈局高度 - 根檢視顯示高度)與(狀態列高度 + 導航欄高度)的大小對

Android 鍵盤狀態

近日遇到要檢測軟鍵盤是否顯示或隱藏的問題,搜了一下網上,最後找到一個很簡單的,記錄一下。 activityRoot是activity的根view,就是xml裡面的第一個view,給它設定一個id. final View activityRootView = findView

Android App鍵盤按鍵的三種方式

前言: 我們在android手機上面有時候會遇到監聽手機軟鍵盤按鍵的時候,例如:我們在瀏覽器輸入url完畢後可以點選軟鍵盤右下角的“GO”按鍵載入url頁面;在點選搜尋框的時候,點選右下角的search符號鍵可以進行搜尋;或者在全部資料輸入完畢後,點選右下角的"done"

Android 鍵盤按鍵與改變鍵盤右下角按鍵樣式

android:singleline=”true” android:imeoptions=”actionSearch” 一定要加singleline=”true”!!! actionN

Android App鍵盤按鍵的三種方式與改變鍵盤右下角確定鍵樣式

actionNone : 回車鍵,按下後游標到下一行actionGo : Go,actionSearch : 放大鏡actionSend : SendactionNext : Nextacti

Android鍵盤開啟收起事件

一:瞭解軟鍵盤上各類鍵名: 電話鍵 鍵名 描述 鍵值 KEYCODE_CALL 撥號鍵 5 KEYCODE_ENDCALL 掛機鍵 6 KEYCODE_HOME 按鍵Home 3 KEYCODE_MENU 選單鍵 82 KE

Android開發之鍵盤狀態(彈出收回)

概述 如何使用 隱患 概述 在我們開發過程中,有時需要監聽手機軟鍵盤狀態,但是Android沒有這樣的API,所以需要我們自己處理。 實現方案 實現效果與原理 先上一張效果圖 可以看到我們準確的監聽到了軟鍵盤的彈出與收起事

android鍵盤迴車鍵並且解決預設點選兩次的問題

@Override public boolean dispatchKeyEvent(KeyEvent event) { if(event.getKeyCode()==KeyEvent.KEYCODE_ENTER&&event.getActio

Android在Fragment中鍵盤的彈出和關閉

原理是通過根佈局與當前佈局高度差來判斷的,Fragment實現ViewTreeObserver.OnGlobalLayoutListener這個介面。 @Override public void onGlobalLayout() {

Android鍵盤迴車事件

在Android開發中,難免會碰到一些”意外“。比如輸入法軟按鍵監聽問題,因為第三方輸入法各有不同(對一些按鍵事件作了一些特殊的處理),所以有時有些程式碼會“失靈”。假設一個場景,EditText監聽回車事件,回車後就傳送輸入的內容,一般有以下4種處理方式: 假設場景圖:

Android鍵盤開啟收起事件鍵盤自帶收起按鈕)

最近在公司開發cocos2dx上的Android輸入框控制元件,遇到軟鍵盤的事件監聽,通常軟鍵盤的收起方式大致3種: 1.點選軟鍵盤右下角的Return按鈕(系統收起) 2.輸入框焦點時按返回按鈕(系統收起) 3.點選軟鍵盤和輸入框的外部(自發收起) 4.點選軟

Android聊天介面鍵盤彈出聊天記錄跟著頂上去

專案中做了個聊天介面,就一個介面懶得扒框架,順手擼了。 最後被提了個Bug,彈出輸入法鍵盤擋住了一部分聊天記錄,如下 看了微信就不會這樣,尋思是不是改改佈局就可以。 結果,一直以為是動態改變recyclerview的高度,配合佈局,把recyclerview頂上去。 各種

Android應用】【鍵盤彈起與關閉】

【背景】 在很多App開發過程中需要在Activity中監聽Android裝置的軟鍵盤彈起與關閉,但是Android似乎沒有提供相關的的監聽API給我們來呼叫,本文提供了一個可行的辦法來監聽軟鍵盤的彈

Android 鍵盤顯示隱藏

開發過程頁面中需要監聽軟鍵盤的顯示和隱藏,無可奈何Android並沒有提供這樣的監聽。 於是乎嘗試各種方法,但是結果總是令人蛋疼。 但是功夫不負有心人,最後還是找到了解決的方法: 當顯示的高度大於整體的2/3時視為鍵盤隱藏(我把鍵盤的高度作為螢幕的1/3高度算的). /

android鍵盤的彈出與隱藏並獲取鍵盤的高度

最近專案中有一個需求上彈出軟鍵盤的時候,輸入框位移至輸入框上方,但是Activity中其他的VIew都不動。這個需求需要監聽軟軟鍵盤的彈出與隱藏,並獲取鍵盤的高度。上網找了一下發現,Android竟然沒有提供相應的介面。網上找到的替代方法中最常用的就是自定義根試圖從寫on

在前後端分離的專案中用vue寫搜尋功能和分頁

1,在mock.js中模擬資料 //搜尋商品初始化資料 Mock.mock("/search-service/goods", "get", { "count": "@integer(100,200)", "data|5-15": [{ "id|+1": 1