2013-07-15 89 views
2

enter image description here安卓:如何將兩個 '意見'

之間創建一個 '的SplitContainer' 據我要實現以下ScreenUI截圖(Android的API> = 10):

你有一個GoogleMapsSupportFragement和一個ListView,共享視圖的剩餘高度(height在所述應用程序開始被計算,並且應用僅在PortraitMode捉迷藏)

ListView容器的行爲應該類似於Android的Notificatio n菜單,因此用戶可以滑入和滑出列表,但如果用戶釋放視圖(觸摸),則動畫開始。

到目前爲止,我實現了兩個LinearLayoutMapListView),這是由紅線(LinearLayout)分開。我管理,ListView顯示/隱藏點擊紅線,但它看起來奇怪,如果我隱藏ListView,因爲地圖重繪並留下黑色空間。

問題是:什麼s best way to implement (LinearLayout? Fragments?)? Do you know examples for the onTouchBehaviour`(類似於打開的Notication Menu)?

這裏是我的實現:

//function is triggered at click on the redline-button 
private void toggleOverlayList(){ 

    //TEST CASE API >= 11 

    int mListHeight = ((LinearLayout) findViewById(R.id.map_list)).getLayoutParams().height; 
    Log.i(DEBUG,"toggleOverlayList() -> currentHeight:" + mListHeight); 

    if(mListHeight == 0){ 
     ((LinearLayout) findViewById(R.id.map_wrapper)).getLayoutParams().height = mDisplayHeight; 
     ((LinearLayout) findViewById(R.id.map_list)).getLayoutParams().height = mDisplayHeight; 
     ((LinearLayout) findViewById(R.id.main_screen)).requestLayout(); 
    } 
    else{ 
     ((LinearLayout) findViewById(R.id.map_wrapper)).getLayoutParams().height = 2* mDisplayHeight; 
     ((LinearLayout) findViewById(R.id.map_list)).getLayoutParams().height = 0; 
     ((LinearLayout) findViewById(R.id.main_screen)).requestLayout(); 
    } 
} 

Layout.xml

<LinearLayout 
    android:id="@+id/main_screen" 
    android:animateLayoutChanges="true" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/map_wrapper"> 
     <fragment 
     android:id="@+id/map" 
     android:name="com.google.android.gms.maps.MapFragment" 
     /> 
    </LinearLayout> 

    <LinearLayout 
    android:id="@+id/map_seperator" 
    android:layout_height="20dp" > 
    </LinearLayout> 

    <LinearLayout 
    android:id="@+id/map_list"> 

    <ListView 
     android:id="@+id/listView1" > 
    </ListView> 

    </LinearLayout> 

</LinearLayout> 

回答

1

,你可以用它代替自己實現這個this庫。 看看我的答案here。希望能幫助到你。

+0

好庫!但我必須檢查是否可以「劃分」主視圖,而不是重疊整個屏幕。 – longilong