『壹』 如何在android中添加一個節分隔抽屜式導航
你說的效果實現可以分為兩個部分:
一、拖拽部分,這部分你實現讓scrollview跟著你的手移動
1、給scrollview添加onTouchListener或者自定義scrollview並重載其onTouchEvent方法。
2、根據move不停設置scrollview的坐標
你需要注意的是:event.getX()是你手指的坐標,而不是控制項的坐標,很多人能夠理解,但有的人寫的時候會搞混。
你需要做的是:取得4個坐標——
(1)、你手指點下去的坐標,這個坐標在ACTION_DOWN中獲得:primaryTouchCoord,這個坐標要一直保存,所以要在Touch事件外定義(類成員變數);
(2)、你手指當前的坐標curTouchCoord,在每次Touch事件觸發的時候用event.getY()獲得,即在switch外或者ACTION_MOVE中獲得;
(3)、scrollview初始坐標primaryScrollViewCoord,這個坐標也在ACTION_DOWN中獲得並且一直保存。
(4)、scrollview最終坐標curScrollViewCoord,在ACTION_UP中獲得。
有了這四個坐標,就可以實現了。
『貳』 APP常用8種導航形式
雖說一款應用的生死不是由導航決定,但毋庸置疑,導航模式的選擇在產品用戶體驗上佔有很大的比重。就導航本身來說,沒有優劣之分,端看你的應用適合哪種。下面是我羅列的一些常見的移動導航模式,接下來會對其一一舉例說明(註:重要模式會重點分析,其餘簡略,篇幅略長,不喜可跳過)
1、標簽式
標簽式導航是iOS平台上公認的最經典的導航模式,看市場上幾乎有80%的應用都在使用就能知道。標簽式導航關注的是平行空間的展示,它的優點是適用於多個內容體系,且重要程度相似(平級關系),能頻繁在不同頁面間切換,切換成本底,只需一次點擊;缺點是佔用一定高度空間,且標簽數量有限,最多5個標簽。
淘寶,是標簽式導航的標准使用形式,每個標簽作為一個導航分類放在標簽欄中(注意都是名詞)。可以算是標准形式的變形(還有其他變形形式,後面再講),雖然也是有5個標簽,但處於中間位置的標簽不是作為導航使用,而是一個行為召喚按鈕。行為召喚按鈕主要強調某項重要功能的快捷使用,該功能需要是應用最核心且最常用的功能,優先順序很高。比如instagram,它的目標是以一種快速、美妙和有趣的方式將你隨時抓拍下的圖片分享出來,它關注的是能隨時隨地抓拍。因此,作為行為召喚按鈕的「拍照」放在標簽欄上就很有必要。
但是,有些應用對於行為召喚按鈕的放置並不合理。如下圖的圖3-,雖然文章的撰寫是的核心功能,將其作為標簽欄中的一個按鈕,即能在視覺上凸現出來,又能減少操作負荷,似乎很棒。但卻忽略了一個重要的問題,從使用環境來說,文章或者文檔的撰寫是需要在安靜且能集中注意力的環境下,但移動app天然具有干擾多且注意力不集中的問題。而且在手機上輸入上百字也是一件痛苦的事。對於這款產品的手機用戶來說,可能用戶對內容的消費比對執行動作更重要。
另外,還有一種常見的標簽式導航的變種,即傳統的標簽式+點聚式。這里先專門講一下點聚式,最為我們所熟知的點聚式就是曾經經典的path結構,即抽屜導航+點聚式,如下圖所示—改版前圖示,它的目的是將用戶最頻繁使用的多個核心功能點匯聚在主界面中顯示,方便用戶隨時呼出使用。只是,如今單獨使用點聚式的應用越來越少,就連path也對這種傳統的點聚式進行了調整,變成了依附於標簽的點聚式結構,如下圖中的path改版後。還有下圖中的樣式1和樣式2,也是這種形式的不同展現。他們的共同點是,使用同一個導航入口,進行多個同級功能的不同操作,大部分都是2-5個不同的操作選項,當然也會有更多,比如下圖中的新浪微博,點擊「加號」入口,出現了更多的功能選項,且這些功能的優先順序相若。
其實,在Android 5.0中,這種點聚式更常用的表現形式是懸浮響應按鈕,它代表的是這個app中最主要的操作。只是就目前來講使用場景有限,實際應用並不理想。
二、抽屜式
抽屜式導航的目的是帶給用戶更為沉浸的體驗。它的特點是,「閱讀」為王,點擊切換少,專注於主體信息本身。從表現形態來看,抽屜導航很符合產品的二八法則,即產品中只有20%的功能常用,所以要突顯,剩下的80%不常用,因此隱藏。它不像標簽導航一樣強調平級關系的切換,而是突出重要且核心的功能。抽屜導航的另一些優點是,側邊導航收納的導航標簽可以是5個以上,節省屏幕空間。缺點是無法快速完成導航切換,操作成本高。
關於抽屜導航,在Android和ios平台的使用也有區別,可以看我的另一篇文章《關於Android和IOS交互上那些事》,此處就不做贅述。抽屜導航在Android平台上比ios更常使用。由於在ios上,抽屜導航沒有專門的設計規范,所以使用上較為隨意,表現形式也不受拘泥。
如果以抽屜導航和主頁在空間位置為評判依據,其在風格上主要有3種表現,第一種是浮層,即導航抽屜處於主頁上層,通過滑動或點擊的手勢打開抽屜,抽屜部分遮擋或覆蓋原來頁面的內容,如下圖中圖4,這種風格多數會在Android上出現。第二種是疊加式,即導航抽屜位於主頁的底部,打開抽屜,原來的主頁會向屏幕右側滑動,顯出主頁下方的導航抽屜,如下圖中圖5,這種風格在ios上很普遍。第三種是嵌入層,即導航抽屜和主頁處於同一層,通過輕滑、平移或點擊打開抽屜,把原先的頁面內容部分推出屏幕外,如下圖中圖6(注意導航和主頁銜接處無陰影)。而第三種風格經常會有如下圖圖7的變形,就是說在打開側邊抽屜的時候,嵌入式抽屜不僅把上一級頁面向右推開,還採用3D效果將其推到後面。了解不同風格可在設計時斟酌使用。
三、選項卡式
對於選項卡導航,不同平台有不同的設計規則,關於Android平台我就不多說了,請移步至《關於Android和IOS交互上那些事》有詳細說明。今天主要說說ios上選項卡的表現,選項卡的本質即是,實現容器內不同視圖或內容的切換。雖然對於選項卡本身,ios沒有專門的規范約束,但這並不妨礙廣大設計者們自由發揮。目前市場上主要有3種形式的選項卡:分段選項卡、固定選項卡和滑動選項卡。
分段選項卡:是由兩個或兩個以上寬度相同的分段組成,正常情況下不超過4個,視覺上會有一個很明顯的描邊按鈕。分段選項卡經常會作為二級導航,對主導航內容再次分類,可以在頂部導航欄的下方,也可以直接放在導航欄上,如下圖所示。標簽之間互相關聯,只能點擊切換,操作效率較低。
另外,就是固定選項卡和滑動選項卡,兩者都可以直接點擊或左右滑動切換選項,且一級和二級導航都能使用。區別就是滑動選項卡可以有更多選項,且能直接通過手指滑動導航找分類,適用於相關類別多的應用,如下圖的電子商務網站。
四、下拉菜單式
現如今,下拉菜單式導航並不常用。下拉菜單和導航抽屜一樣,是以突出內容為主的導航模式,一般位於產品頂部,通過點擊呼出導航菜單。由於導航菜單位於屏幕頂部,不適合結合手勢,操作負荷大,因此不適合需要頻繁切換功能,且能在一定程度上節省屏幕空間。一般情況下,下拉菜單很容易被滑動選項卡取代,且滑動選項卡可以結合手勢操作,使用效率更高,這也是現在下拉菜單很少被使用的原因,除非你的下拉菜單選項中有很明顯的優先順序區分。比如下圖所示,圖8的新浪微博首頁作為默認選中項,顯示和用戶相關的所有微博,常態下用戶只需要一直瀏覽下去即可,很少需要主動點擊切換,除非想要篩選某些特定的微博內容,此處的內容優先順序很容易區分。同理,圖9也是如此,用戶關注更多且更感興趣的是以項目為維度的內容分組,因此用下拉菜單來表現。另外,多數菜單是以點擊後彈框的形式出現,也有一些是從底部滑出一個新的頁面調出菜單,如下圖中的圖10。
五、宮格式
宮格式導航,是一種類似於手機桌面各個應用入口的導航方式。每個入口往往是比較獨立的信息內容,用戶進入一個入口後,只處理與此入口相關的內容,如果要跳轉至其他入口,必須要先回到入口總界面。這種導航經常用於工具類app中,它的優點是功能拓展性強,可增加多個入口。缺點是單頁承載信息能力弱,層級深,不適合頻繁任務切換。如下圖的美顏相機就是標準的宮格式結構,每個功能類似於獨立的app,且作為一級導航使用,這種表現形式現在越來越少。而剩下的其他三張圖示,屬於宮格式的一種變形,我稱之為數據入口,這種只作為各種大數據入口的導航模式現在更多作為二級導航使用,特別是平台類產品。
六、列表式
列表式導航也是一種十分常見的導航模式,純粹的列表導航很少見,一般都是搭配著別的導航模式一起使用,大多作為二級導航。列表中可以放置圖片、標題或者詳情文字等來展示信息,列表本身是一個傳達信息效率很高的載體,因此使用列表的時候要注意,每個列表所佔的屏幕空間,以及每屏能顯示多少條列表等。如下圖所示的圖1-1採用了列表的分組模式,圖2-2中列表中的每項信息可能都會影響用戶的點擊轉化,所以如這種形式的列表,細節信息很重要。圖1-3和圖1-4為二級列表,點擊列表右側的小符號,可以展開或者隱藏信息,這方便用戶查找信息並快速定位,多數情況下,點擊右側小符號可能會出現快捷編輯模式或者部分詳情信息,便於用戶直接編輯或者瀏覽。而點擊整個列表,通常會進入新一級的詳情頁面。因此,設計師在設計的時候要注意。
七、圖示式
圖示式是一種更加可視化的導航,它能根據頁面內容的變化及時更新圖片,適合以圖片為主的內容,像新聞、美食、旅行、視頻圖片等經常使用,常作為二級導航。由於圖片可能需要經常更新,因此需要配置固定的欄目或標題,防止不斷更新的圖片讓用戶找不到入口。這種形式的導航常常會採用網格布局,如下圖所示,每行基本上會有1-3個圖示單位,不同的網格布局決定了每屏容納的圖示個數,因此用戶瀏覽效率及點擊轉化率也會有所不同。
八、幻燈片式
幻燈片的導航方式,適用於圖片或整塊內容的並列展示,用戶通過手指左右滑動來切換當前內容。正常情況下,幻燈片的數量不宜太多,最好控制在7-8個以內,避免用戶操作疲勞。如下圖所示,使用幻燈片設計最好在設計上提供視覺暗示,讓用戶清楚的知道所處的位置以及幻燈片數量,例如添加分頁標識碼,或者隱喻還有下一張圖片等。
『叄』 android怎麼實現類似qq那樣的右滑出現側拉菜單
Android 實現類似QQ側滑菜單,實現左右側滑 源碼。具有iOS 7/8 parallax effect 風格的側邊菜單,類似於最新版qq的菜單效果。ReisdeMenu 創意靈感來自於Dribbble1還有2,而這個是Android版的ResideMenu,在視覺效果上部分參考了iOS版的RESideMenu
『肆』 Android 滑動菜單(slide menu) 背景 亮度和透明度設置
首先在sdk目錄下source源碼目錄下搜索DrawerLayout文件,把相關的java文件導入工程
以5.0為例
@Override
protectedbooleandrawChild(Canvascanvas,Viewchild,longdrawingTime){
finalintheight=getHeight();
finalbooleandrawingContent=isContentView(child);
intclipLeft=0,clipRight=getWidth();
finalintrestoreCount=canvas.save();
if(drawingContent){
finalintchildCount=getChildCount();
for(inti=0;i<childCount;i++){
finalViewv=getChildAt(i);
if(v==child||v.getVisibility()!=VISIBLE||
!hasOpaqueBackground(v)||!isDrawerView(v)||
v.getHeight()<height){
continue;
}
if((v,Gravity.LEFT)){
finalintvright=v.getRight();
if(vright>clipLeft)clipLeft=vright;
}else{
finalintvleft=v.getLeft();
if(vleft<clipRight)clipRight=vleft;
}
}
canvas.clipRect(clipLeft,0,clipRight,getHeight());
}
finalbooleanresult=super.drawChild(canvas,child,drawingTime);
canvas.restoreToCount(restoreCount);
if(mScrimOpacity>0&&drawingContent){
/*
*這里是直接用畫筆畫了一層有透明度的方塊覆蓋在主內容上方,產生慢*慢變暗的效果,所以我們只需要在這里修改即可,
*根據代碼邏輯可以知道我們只需要改變imag即可
*/
finalintbaseAlpha=(mScrimColor&0xff000000)>>>24;
finalintimag=(int)(baseAlpha*mScrimOpacity);
finalintcolor=imag<<24|(mScrimColor&0xffffff);
mScrimPaint.setColor(color);
canvas.drawRect(clipLeft,0,clipRight,getHeight(),mScrimPaint);
}elseif(mShadowLeft!=null&&(child,Gravity.LEFT)){
finalintshadowWidth=mShadowLeft.getIntrinsicWidth();
finalintchildRight=child.getRight();
finalintdrawerPeekDistance=mLeftDragger.getEdgeSize();
finalfloatalpha=
Math.max(0,Math.min((float)childRight/drawerPeekDistance,1.f));
//這里是繪制菜單的覆蓋物
mShadowLeft.setBounds(childRight,child.getTop(),
childRight+shadowWidth,child.getBottom());
mShadowLeft.setAlpha((int)(0xff*alpha));
mShadowLeft.draw(canvas);
}elseif(mShadowRight!=null&&(child,Gravity.RIGHT)){
finalintshadowWidth=mShadowRight.getIntrinsicWidth();
finalintchildLeft=child.getLeft();
finalintshowing=getWidth()-childLeft;
finalintdrawerPeekDistance=mRightDragger.getEdgeSize();
finalfloatalpha=
Math.max(0,Math.min((float)showing/drawerPeekDistance,1.f));
mShadowRight.setBounds(childLeft-shadowWidth,child.getTop(),
childLeft,child.getBottom());
mShadowRight.setAlpha((int)(0xff*alpha));
mShadowRight.draw(canvas);
}
returnresult;
}
改變代碼之後保存
這時候在布局文件中就不要使用android-supportv4包下的DrawerLayout的,改成你工程里修改後的DrawerLayout,運行就達到效果了
『伍』 移動APP的常見的幾種導航形式
當確定了APP的設計需求和產品的整體結構之後,要著手開始規劃和製作APP的原型及UI界面。一款APP的好與不好,很大部分取決於APP界面布局的合理性。這個時候就要想以最優的設計結構將APP的內容展現給用戶,那麼,如何將信息以最優的形式展現出來呢?這就涉及到了APP的導航應用方式,可以說一個優秀的導航設計對一款App的核心體驗起到了決定性的作用!
知道了導航的重要性,在考慮導航設計時,需要注意以下事項:
1.可達性:
移動應用的導航功能可以說是所有界面最重要的組成部分,因此一定要保證其可達性,並把最關鍵的要素盡量突出,同時不要影響到內容本身。
2.目的性:
確保導航中的每個按鈕要素簡單明了,有明確的引導用戶點擊的目的性。讓用戶一看就知道是什麼意思以及操作結果是什。不要弄的太過花哨,這樣反而會讓迷惑用戶,起到反作用。
3.易於理解:
如果想設計比較高級的導航功能(例如鏈接圖片、允許滑動或其他手勢導航,或者訪問隱藏菜單),請務必在設計過程中保證前後一致,以便用戶熟悉你所使用的模式,同時還應加入一些額外的信息(例如小箭頭、文字或改變顏色或高亮等)來吸引用戶注意力,並以微妙的方式對用戶進行引導。不要給用戶呈上「看得見摸不著的導航功能」。
4.通用性
導航功能應當以一定的形式顯示於移動應用的各個界面。各個導航模式不一定要完全相同,但其基本結構應當在應用內保持一致,可以根據背景進行小幅度的調整。
明確上述幾點注意事項後,將APP的信息結構分層,把主要、最核心、最根本的功能放在第一層級,次要內容放在第二層級甚至更深。然後根據層級關系、結構關系確定導航的形式。
結合產品的深度和廣度來共同探討一下目前APP界面常見的幾種導航形式,並分析其優缺點,從而進一步判斷每一種導航形式更適合應用於哪種類型的APP!
標簽式導航,也就是常說的Tab式導航。是目前應用最廣泛、最常見的導航形式。
標簽式導航可分為 頂部標簽式導航、底部標簽式、舵式導航(底部擴展式導航)。
頂部標簽式導航
頂部標簽式導航顧名思義,存在於頁面的頂部。頂部標簽導航多應用於Android平台,因其平台特性,底部含有虛擬的物理按鍵,如華為手機存在手機屏幕內的物理按鍵。
很多App為了適配安卓平台,採用了頂部標簽式導航,目的是為了不與底部虛擬按鈕組合在一起產生的信息堆疊和誤操作,這也是一種妥協行為。但不斷升級的Android平台app現如今也和ios盡量保持一致。
不過也有很多ios平台根據產品結構應用此類型的導航。
上圖是蝦米音樂app首頁導航模式,採用了頂部標簽式導航。這樣設計是為了 更多展示標簽下的內容,還有一點是支持快捷操作 。方便展示/點擊下方快捷區域的內容和按鈕(當前曲目、歌手、播放/暫停和下一曲)。
底部標簽式導航
底部標簽式導航是最常用的導航形式,一般存在於頁面底端,不超過5個模塊。
如果應用需要用戶 頻繁的在不同分頁切換 ,可以採用這種導航,如上圖微信最新版的APP界面設計圖。這種導航欄符合拇指操作熱區。
舵式導航(底部擴展式導航)
舵式導航是底部導航的一種擴展形式,是一種變體。因為它的樣式很像輪船上用來指揮的船舵,兩側是其他操作按鈕。
當頁面有處於同一層級的幾大部分內容,同時又需要一個非常重要且頻繁操作的入口 ,就可以採用這種APP導航模式。 中間項標簽不緊操作最頻繁,最重要,且需要引人注意,方便尋找 。
左圖為懶人聽書App,右圖為新浪微博手機客戶端。兩款App的主要功能都採用了舵式導航的布局方式,將操作最頻繁的按鈕進行特殊處理,在視覺設計上突出,與導航上的其他按鈕進行區分,引導用戶操作。
頂部導航+底部導航(雙導航模式)
今日頭條和網易新聞這種新聞類APP,由於內容、分類較多,運用頂部和底部雙tab導航,而切換頻率最高的tab放在頂部,這是為什麼呢?因為新聞在每個tab都是沉浸式閱讀,最常用的操作是在一個tab中不斷地下滑閱讀內容,將常用的tab放在頂部,向左或向右滑動切換tab的手勢操作,能帶來更好地閱讀體驗。
在兩種情況下可以選擇頂部tab式導航:某項功能必須固定在底部,那麼其他tab只能固定在頂部,但為了方便操作,頂部tab導航最好支持手勢操作,即滑動即可切換;該APP是沉浸式體驗,如新聞、小說等,為了帶給用戶更好的閱讀體驗,可以將tab放在頂部。
實際上,底部Tab模式導航在iOS和Android上一直是最安全的一種導航模式,他不怎麼出彩,但是絕對不會犯錯。在大屏幕時代,底部Tab模式的導航更能適應,也更好設計。
適用於:
入口分類數目不多,可以控制在5個以內,且用戶需要在入口間頻繁切換來執行多個任務
注意:
結構太過復雜而且不穩定的應用不適合標簽式導航。
抽屜式導航模式一般採用將導航主體隱藏在app側邊的方式,以一個按鈕來呼出導航,在使用完成之後在使用相同的按鈕隱藏起來。一拉一縮,從形象上與抽屜類似,因此稱之為抽屜式導航。
抽屜式導航的核心思路是「隱藏」。隱藏非核心的操作與功能,讓用戶更專注於核心的功能操作上去。 設想你的產品信息層級有非常多的頁面和內容,難以在一屏內顯示全部內容,那麼你一定首先會想到去設計一個底部或頂部的tab導航,但導航太多無疑顯得臃腫,而且使用戶難以點擊,那麼這個時候,抽屜式導航是個不錯的選擇。
抽屜式導航存在幾個缺陷:
1.左上角的導按鈕存在於單手拇指操作熱區難以到達的位置,導致導航按鈕難以觸達;2.降低了用戶對產品一半的參與度;3.可見性低。
有些人認為「現在的APP的發展不僅僅是從前單一的功能,功能隨產品的發展變得越來愈多,抽屜式導航已經不適應大多數的產品,這種導航終將被遺棄」。但是,導航欄的使用方式並不是單純隨著看產品的功能增加而不被使用,而是隨著整個產品的信息結構和功能形式來設計決定的。拋開產品的功能表現而去講產品設計是不合理的。
何種情況下適合使用抽屜式導航:
1.如果應用主要的功能和內容都在一個頁面裡面。只是一些低頻操作內容需要顯示在其他頁面里。為了讓主頁面看上去干凈美觀,可以把這些輔助功能放在抽屜欄里。
2.如果應用有不同的視圖,且他們是平級的,需要用戶同等地對待,抽屜欄將會浪費掉大多數的用戶對於側邊欄中入口的潛在參與度和交互程度。
3.在大屏時代使用抽屜欄,手勢操作顯得尤為重要,從屏幕邊緣喚出抽屜欄是個不錯的選擇。
注意:
需要用戶有一定參與的信息層級,最好不好放置在抽屜欄
跳板/快速啟動/宮格導航是將主要入口全部聚合在頁面,讓用戶做出選擇。
採用這種導航的應用已經越來越少, 往往用在二級頁作為內容列表的一種圖形化形式呈現,或是作為一系列工具入口的聚合。 如下圖新浪微博,點擊導航欄中間的發布按鈕,彈出二級菜單,這個二級頁面就是採用的宮格式導航,作為發布微博的入口。
這種導航模式非常常見,但是卻不常用。
無論你用的是Android還是iOS,每天一打開手機,宮格式導航就會對你說hello了。
每一個APP都是一個宮格,這些宮格聚集在中心頁面,用戶只能在中心頁面進入其中一個宮格,如果想要進入另一個宮格,必須要先回到中心頁面,再進入另一個宮格。每個宮格相互獨立,它們的信息間也沒有任何交集,無法跳轉互通。因為這種特質,宮格式導航被廣泛應用於各平台系統的中心頁面。
宮格式導航的缺陷 :
信息互斥,無法相互通達,只能給用戶帶來了更多的操作步驟。無法讓用戶在第一時間看到內容,選擇壓力較大。
何種情況下適用於宮格式導航:
適合入口相互獨立互斥,且不需要交叉使用的信息歸類
注意:
一旦入口需要有所交集,必然導致更多的操作負累,這個時候只能根據產品特性做出權衡,如果不適合,建議果斷拒絕這種方式。
列表式導航結構清晰,易於理解,冷靜高效,能夠幫助用戶快速的定位去到對應的頁面。作為輔助導航來展示二級甚至更深層級的內容
列表式導航分為3類: 標題式列表、內容式列表、嵌入式列表。
標題式列表 :一般只顯示一行文字,有的顯示一行文字加一張圖片等等。
內容式列表: 主要以內容為主,所以在列表中就會體現出部分內容信息,點擊進去就是詳情。
嵌入式列表: 嵌入式其實就是由多個列表層級組合而成的導航。能很好的解決次要功能非常多的問題
所有關於列表導航的例子大部分都是依附於標簽導航之上的。前面我就說過現在以列表形式作為主導航的產品是越來越少,因為確實它不是一個好的主要展示形式。 列表項目可以通過間距、標題等進行分組,形成擴展列表。 列表菜單導航可以將重要的UI部分以列表的形式進行呈現,讓用戶可以滾動查看自己要執行的操作或內容。
而在二次層級上,它們還會 將列表分模塊進行展示 ,如微信中「我的」模塊「新消息通知、隱私、通用」是一組,「幫助與反饋、關於微信」又是一組。雖然你能看到,但是不仔細觀察就不會發現其中的要點。只要善用這個細節,可以更好的加以區分次要功能,並提升用戶體驗度。
懸浮icon導航,是將導航頁面分層,無論你到達APP的哪個頁面,懸浮icon永遠懸浮在上面,你依靠懸浮層隨時可以去想要去的地方。
懸浮式icon會遮擋某些頁面的操作,在設計的時候應該考慮進去,比如無論在那個頁面永遠為懸浮icon留有位置。
標簽式導航: 最常用、最不易出錯,請第一時間考慮它
抽屜式導航: 如果你的信息層級繁多,可以考慮將輔助類內容放在抽屜中
跳板式/宮格式導航: 不建議在APP中作為主導航使用,如果非使用不可,請增加跳轉的關聯性
列表式導航: 作為輔助導航來展示二級甚至更深層級的內容,每個APP必不可少,但請注意數量與分類
懸浮式導航: 更適應大屏的導航模式,不妨試一試,但注意不要讓它遮擋住某些頁面的操作
還是那句話,優秀的app導航設計,能夠合理地完美展示產品的功能,並快速引導用戶使用,增強用戶的識別度。合理的導航設計,會讓用戶輕松達到目的而又不會干擾和困擾用戶的選擇。
感謝大家的耐心閱讀,還有一路陪伴的行業大牛為我指點迷津!如果內容觀點有不對的地方,歡迎批評指正!
『陸』 如何在android抽屜效果中顯示自定義內容
本項目重點在界面特效上,主要就是做抽屜的拖動,抽屜中的gridview布局(注意不是所有gridview的item都一樣的哦)以及帶動畫的彈出菜單popupwindow。
主要功能是實現對筆記數據的新建(主頁面上),修改(單擊gridview中的item),刪除(長按gridview中的item),其中白色背景的item不能操作,只起到顯示本月筆記總數的作用,這種效果主要是在gridview的適配器中的getView()方法中完成。
筆記數據的存儲採用的xml格式,解析xml使用的是android自帶的pull解析機制完成。讀取使用XmlPullParser類,存儲使用XmlSerializer類。
抽屜實習原理:默認時候抽屜顯示在屏幕的中部位置,往上拖動能達到標題欄下面的位置。其實這個效果是完全用布局參數控制的,抽屜的根控制項其實是一個LinearLayout布局,但是注意它的父控制項必須是RelativeLayout或者是FrameLayout,我使用的相對布局,這樣通過動態改變抽屜的相對布局參數就可以實現抽屜的移動。當然實現拖動效果少不了使用到onTouch事件,在down,move,up事件中做處理就可以實現想要的效果。
//取得抽屜的相對布局參數
RelativeLayout.LayoutParamsparam=(RelativeLayout.LayoutParams)slidigLayout.getLayoutParams();
//動態調整抽屜的位置
slidigLayout.setLayoutParams(param);
第二個是模仿ViewPager實現屏幕切換效果,並且支持標題指示器。我使用了開源的ViewFlow項目 來改編的。具體效果