2017-11-22 21 views
0

카메라가 뭐냐하면 카메라를 쓰고 있고, 안드로이드를 쓰러 뜨리는 데 어려움이 있습니다. gridviewbottomsheet behavior입니다. 더 이상 미리 보거나 위에서 아래로 드래그 할 항목이 없을 때 접고 싶습니다.하단 시트 동작에서 android gridview를 어떻게 축소 할 수 있습니까?

안드로이드 XML 코드 :

<android.support.design.widget.CoordinatorLayout 
     android:layout_marginBottom="100dp" 
     android:id="@+id/main_content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true"> 
     <ImageView 
      android:id="@+id/drag_arrow" 
      android:layout_width="match_parent" 
      android:layout_height="100dp" 
      android:paddingBottom="40dp" 
      android:paddingTop="10dp" 
      android:src="@mipmap/arrow_up" 
      app:layout_anchor="@+id/galleryGridView2" /> 

     <GridView 
      android:id="@+id/galleryGridView2" 
      android:layout_width="match_parent" 
      android:layout_height="500dp" 
      android:background="#44000000" 
      android:columnWidth="120dp" 
      android:gravity="center" 
      android:horizontalSpacing="10dp" 
      android:numColumns="auto_fit" 
      android:stretchMode="columnWidth" 
      android:verticalSpacing="10dp" 
      app:layout_behavior="@string/bottom_sheet_behavior" /> 
    </android.support.design.widget.CoordinatorLayout> 

및 JAVA 코드 : 같은 유래에 내가 본

BottomSheetBehavior mBottomSheetBehavior; 
final GridView gallery; 

gallery = (GridView) findViewById(R.id.galleryGridView2); 

mBottomSheetBehavior = BottomSheetBehavior.from(gallery); 

     mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { 
      @Override 
      public void onStateChanged(@NonNull View bottomSheet, final int newState) { 
       if (newState == BottomSheetBehavior.STATE_COLLAPSED) { 
        mBottomSheetBehavior.setPeekHeight(100); 
       } 

       if (newState == BottomSheetBehavior.STATE_DRAGGING) { 

        mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); 
       } 
      } 

      @Override 
      public void onSlide(@NonNull View bottomSheet, float slideOffset) { 
      } 
     }); 
     mBottomSheetBehavior.setPeekHeight(100); 

비슷한 답변 :

gallery.setOnScroll(...) 
if(!canScrollVertically(-1)) //Collapse 
or checking if I'm on the top of gridview //Collapse 

이 답변 잘 작동하지만, 문제는 내가 아래로 빨리 위로 스크롤하면 볼 수 없다. p의 gridview 그리고 그것은 붕괴.

아무런 조언을 부탁드립니다. 미리 감사드립니다.

답변

0

붕괴/확장 기능이 많고 사용하기 쉬운 체크 아웃 AndroidSwipeLayout 라이브러리를 권합니다.