2015-06-20 13 views
5

ich slidinguppanel machte diesen Repository mit https://github.com/dlukashev/AndroidSlidingUpPanel-foursquare-map-demoSchiebetüren oben panel - dünne Linie Gleitpanel unter google MapFragment

Es ist jedoch einen Fehler enthält, die nicht überall bedeckt ist.

Wenn ich irgendwo berühre, um Panel zu erweitern (Listview) funktioniert gut, aber während ich versuche, es zu erweitern, indem Sie eine Spitze einer Listenansicht (blaue Linie auf screen2) Panel ausblenden unter der Karte (framelayout) (screen3)

Wie ist es überhaupt möglich, dass diese blaue Linie versteckt Panel unter Mapfragment und Rest der Listenansicht es gut erweitern?

Irgendwelche Ideen, warum? Bitte geben Sie mir nur einen Hinweis, wie Sie es beheben können?

Bitte schauen Sie auf dem Bildschirm:

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

Genießen Können Sie Panel verstecken ??? – Asmi

+0

Ich brauche etwas Hilfe .. Ich sah diesen Code, aber ich habe nicht das Rollfeld ausblenden .. Ich möchte, dass das Panel zu verstecken .. und wenn App ausgeführt wird es von unten zeigt nur eine Zeile Listview ?? – Asmi

Antwort

3

Sie müssen Listview außer Kraft zu setzen

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

}

Dann deaktivieren Scrollen setzen bei Bedarf

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

Ich schob dies auf GitHub ändert https://github.com/dlukashev/AndroidSlidingUpPanel-foursquare-map-demo/commit/7b869394e9d197e6f56a833804426577dcb8458a

+0

Vielen Dank für Ihre bemerkenswerte Hilfe! Problem gelöst! – klijakub