2015-06-20 122 views
5

我使用這個庫https://github.com/dlukashev/AndroidSlidingUpPanel-foursquare-map-demo向上滑動面板 - 谷歌下細線滑動面板mapfragment

但是,它包含一個錯誤,這不是蓋的任何位置進行slidinguppanel。當我觸摸任何地方擴展面板(列表視圖)效果很好,但是當我試圖通過列表視圖的頂部(屏幕2上的藍色線)面板隱藏在地圖(framelayout)(screen3 )

甚至有可能在mapfragment和listview其餘部分下的這個藍線隱藏面板擴展它很好嗎?

任何想法爲什麼?請給我一個提示如何解決它?

請看屏幕:

http://i.stack.imgur.com/G88Ok.jpg

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <org.sothree.slidinguppanel.SlidingUpPanelLayout 
     android:id="@+id/slidingLayout" 
     android:gravity="bottom" 
     app:shadowHeight="0dp" 
     app:paralaxOffset="@dimen/paralax_offset" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

     <FrameLayout 
      android:gravity="top" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_below="@+id/button"> 

      <RelativeLayout 
       android:id="@+id/mapContainer" 
       android:layout_width="fill_parent" 
       android:layout_height="497dp"/> 
     </FrameLayout> 

     <RelativeLayout 
      android:id="@+id/slidingContainer" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_below="@+id/button"> 

      <View 
       android:id="@+id/transparentView" 
       android:visibility="gone" 
       android:layout_width="fill_parent" 
       android:layout_height="@dimen/map_height" 
       android:layout_alignParentTop="true"/> 

      <ListView 
       android:id="@+id/listView1" 
       android:cacheColorHint="@android:color/white" 
       android:drawSelectorOnTop="true" 
       android:dividerHeight="@dimen/divider_height" 
       android:divider="@android:color/darker_gray" 
       android:background="@android:color/transparent" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:layout_below="@id/transparentView" 
       android:smoothScrollbar="true" 
       android:layout_marginTop="0dp"/> 

     </RelativeLayout> 

    </org.sothree.slidinguppanel.SlidingUpPanelLayout> 

</RelativeLayout> 
+0

你可以隱藏面板??? – Asmi

+0

我需要一些幫助..我看到了代碼,但我沒有隱藏滾動面板..我想隱藏面板..當應用程序運行時,它會顯示從底部只有一行的列表視圖? – Asmi

回答

3

需要時,您需要覆蓋的ListView

public class LockableListView extends ListView { 

private boolean mScrollable = true; 

public LockableListView(Context context) { 
    super(context); 
} 

public LockableListView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

public LockableListView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
} 

public void setScrollingEnabled(boolean enabled) { 
    mScrollable = enabled; 
} 

@Override 
public boolean onTouchEvent(MotionEvent ev) { 
    switch (ev.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      // if we can scroll pass the event to the superclass 
      if (mScrollable) { 
       return super.onTouchEvent(ev); 
      } 
      // only continue to handle the touch event if scrolling enabled 
      return mScrollable; // mScrollable is always false at this point 
     default: 
      return super.onTouchEvent(ev); 
    } 
} 

@Override 
public boolean onInterceptTouchEvent(MotionEvent ev) { 
    // Don't do anything with intercepted touch events if 
    // we are not scrollable 
    if (!mScrollable) { 
     return false; 
    } else { 
     return super.onInterceptTouchEvent(ev); 
    } 
} 

}

然後把禁用滾動

private void collapseMap() { 
    mSpaceView.setVisibility(View.VISIBLE); 
    mTransparentView.setVisibility(View.GONE); 
    if (mMap != null && mLocation != null) { 
     mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(mLocation, 11f), 1000, null); 
    } 
    mListView.setScrollingEnabled(true); 
} 

private void expandMap() { 
    mSpaceView.setVisibility(View.GONE); 
    mTransparentView.setVisibility(View.INVISIBLE); 
    if (mMap != null) { 
     mMap.animateCamera(CameraUpdateFactory.zoomTo(14f), 1000, null); 
    } 
    mListView.setScrollingEnabled(false); 
} 

我把這個變成GitHub的https://github.com/dlukashev/AndroidSlidingUpPanel-foursquare-map-demo/commit/7b869394e9d197e6f56a833804426577dcb8458a

享受

+0

非常感謝您的卓越幫助!問題修復了! – klijakub