2014-10-27 43 views
1

我正在嘗試創建一個類似於Google+應用中找到的下拉菜單。截圖可以在下面找到。我看過紡紗機和彈出式菜單,但這些都不符合我想要創建的內容。第一張圖像顯示關閉的菜單,第二張顯示打開時下拉菜單的樣子。Android如何創建類似Google+應用的疊加下拉菜單

http://www.droid-life.com/wp-content/uploads/2014/05/google-plus-4.4-1.jpg

菜單不應該出現操作欄裏面,滾動時,顯示所選擇的選項菜單保持在屏幕的頂部。

+0

也許這可以幫助你:http://stackoverflow.com/a/9847763/3864698 – QArea 2014-10-27 17:35:35

+0

我沒有看這個例子和其他許多人;然而,我無法找到一個例子,其中的菜單是可滾動的,選擇將保持頂部覆蓋,並與屏幕一樣寬。 – 2014-10-27 21:12:44

+0

你有沒有找到某種解決方案?我面臨着相同的任務 – konunger 2014-11-12 09:57:54

回答

0

對不起,我沒有足夠的聲望來添加評論,所以我會作爲答覆張貼,希望它會幫助任何人。這只是我的另一種解決方案,試圖實現像你已發佈的谷歌加應用程序的用戶界面。

我目前的解決方案是使用工具欄下的工具欄(這是一個工具欄也設置爲操作欄)。然後,我爲工具欄添加onClickListener。當輕擊工具欄時,回收站視圖將會顯示。其中recyclerview可以通過您放入佈局的動態數據或自定義數據填充。示例代碼:

main_layout.xml

<LinearLayout .... > 

// the actionbar toolbar 
<android.support.v7.widget.Toolbar 
android:id="@+id/action_toolbar" 
android:layout_width="match_parent" 
android:layout_height="?android:attr/actionBarSize" 
     app:theme="@style/toolbarStyle"/> 

// second toolbar act as the spinner 
<android.support.v7.widget.Toolbar 
android:id="@+id/dropdown_toolbar" 
android:layout_width="match_parent" 
android:layout_height="?android:attr/actionBarSize" 
style="@style/dropdownToolbar"> 

..... // add a spinner indicator (imageview) 

</android.support.v7.widget.Toolbar> 

//separator line 
<View 
android:id="@+id/separator_line" 
android:layout_width="match_parent" 
android:layout_height="1dp" 
android:layout_marginLeft="0dp" 
android:layout_marginRight="0dp" 
android:background="#adacad"/> 

// two child overlaps in framelayout 
<FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@color/white"> 

// the visible layout example 
     <android.support.v7.widget.RecyclerView 
      android:id="@+id/default_recyclerview" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 

// the layout that is visible when toolbar is tapped 
// this is spinner content, put anything u want here 
     <android.support.v7.widget.RecyclerView 
      android:id="@+id/dropdown_recyclerview" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:visibility="gone"/> 

</LinearLayout> 

這將給ü全寬度和長度的佈局。 dropdown_recyclerview內容取決於你想要什麼。我添加了一個imageview來指示假旋轉器是打開還是關閉。爲Java示例代碼:

MainActivity.java

//action toolbar 
Toolbar actionToolbar = (Toolbar) findViewById(R.id.action_toolbar); 
setSupportActionBar(actionToolbar); 

RecyclerView dropdownRecyclerView = (RecyclerView) findViewById(R.id.dropdown_recyclerview); 

//second toolbar 
Toolbar dropdownToolbar = (Toolbar) findViewById(R.id.dropdown_toolbar); 

//Listen for toolbar onClick 
dropdownToolbar.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
//toggle visibility of dropdown spinner 
    if (!SHOW_SPINNER_FLAG) { 

//set indicator close/open 
    dropdownRecyclerView.setVisibility(View.VISIBLE); 
} else { 

//set indicator close/open 
dropdownRecyclerView.setVisibility(View.VISIBLE); 
    } 
    } 
}); 

以後你可以自定義佈局,並添加一些動畫揭示假冒微調佈局。如果有其他方式,請分享。目前,這是我在我的應用程序中使用,它適用於我。對不起,我英文很差。

example app image

+0

您可以通過UIAutomatorViewer(在您的sdk/tools文件夾中)檢查Google+應用程序。他們所做的與你所做的沒有太大的不同。下拉菜單是一個使用ListView的RelativeLayout(所以按鈕可以在底部)。 – Chris 2015-10-28 21:26:19