【问题标题】:Android: How to create a 'SplitContainer' between two 'Views'Android:如何在两个“视图”之间创建一个“SplitContainer”
【发布时间】:2013-07-15 20:25:57
【问题描述】:

根据截图我想实现如下ScreenUI(Android API >= 10):

你有一个GoogleMapsSupportFragement和一个ListView,它们共享View的剩余高度(height在应用程序启动时计算,应用程序只在PortraitMode运行)

ListView Container 的行为应该类似于 Android-Notification Menu,因此用户可以将 List 滑入和滑出,但如果用户释放视图(触摸),动画就会开始。

到目前为止,我实现了两个LinearLayoutMapListView),它们被红线(LinearLayout)分割。我设法在点击红线时显示/隐藏 ListView,但如果我隐藏 ListView,它看起来很奇怪,因为地图被重绘并留下一个黑色空间..

问题是: Whats best way to implement (LinearLayout? Fragments?)? Do you know examples for theonTouchBehaviour`(类似于打开通知菜单)?

这是我的实现:

//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();
    }
}

布局.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>

【问题讨论】:

    标签: android google-maps android-layout android-gesture


    【解决方案1】:

    您可以使用this 库而不是自己实现它。 看看我对here 的回答。希望有帮助。

    【讨论】:

    • 好图书馆!但我必须检查是否可以divide 主视图,而不是重叠整个屏幕。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    相关资源
    最近更新 更多