2016-09-17 112 views

回答

0

是的,你可以实现这一目标。只需将RelativeLayout作为父级布局,然后添加包括您的视图/布局,并分配属性alignParentBottom = “true”。然后包括你的RecyclerView并添加layout_above =“included_layout_id”

0

我都包裹着我的内容视图中的另一个视图(rootContent)内只为范围,以获得高度,但你可以得到它以更好的方式。然后在底部表格回调

mBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet); 

    mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { 
     @Override 
     public void onStateChanged(@NonNull View bottomSheet, int newState) { 
      if(newState == BottomSheetBehavior.STATE_COLLAPSED){ 
       content.getLayoutParams().height = rootContent.getHeight(); 
      }else { 
       content.getLayoutParams().height = rootContent.getHeight() - bottomSheet.getHeight(); 
      } 
      content.requestLayout(); 
     } 

     @Override 
     public void onSlide(@NonNull View bottomSheet, float slideOffset) { 

     } 
    }); 
1

是的,你可以这样做。你只需要使用BottomSheetCallback您BottomSheetBehavior,像这样:

bottomSheetBehavior = BottomSheetBehavior.from(yourLayoutWithBottomSheetBehavior); 
bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { 

    @Override 
    public void onStateChanged(@NonNull View bottomSheet, int newState) { 

    } 

    @Override 
    public void onSlide(@NonNull View bottomSheet, float slideOffset) { 

     CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) yourRecyclerView.getLayoutParams();   
     layoutParams.height = bottomSheet.getTop(); 
     yourRecyclerView.setLayoutParams(layoutParams);   
     yourRecyclerView.requestLayout(); 
}); 

在onSlide方法,你总能得到底片目前上方,如果你改变状态或将其拖拽。

相关问题