Androiddevise支持库24.2.1使BottomSheet在启动时打开

从版本23.4.0切换到Androiddevise支持库的版本24.2.1后, BottomSheetBehavior停止工作。 BottomSheet显示为打开并在调用setState(BottomSheetBehavior.STATE_COLLAPSED)时不closures。 这不会发生在BottomSheetBehaviour按预期工作的Design库的23.4.0版本中。

在版本24中有什么改变,需要使用BottomSheetBehavior不同?

这是我的布局文件:

 <?xml version="1.0" encoding="utf-8"?> 

 <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button" android:text="Open Bottom Sheet" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/close_button" android:text="Close Bottom Sheet" /> </LinearLayout> <LinearLayout android:id="@+id/bottom_sheet" android:layout_width="match_parent" android:layout_height="100dp" android:orientation="horizontal" android:background="@android:color/holo_green_light" app:layout_behavior="android.support.design.widget.BottomSheetBehavior"/> 

这里是我使用的Activity代码:

 public class ScrollingActivity extends AppCompatActivity implements View.OnClickListener { private View m_bottomSheet; private BottomSheetBehavior m_behaviour; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_scrolling); m_bottomSheet = findViewById(R.id.bottom_sheet); m_behaviour = BottomSheetBehavior.from(m_bottomSheet); ((Button)findViewById(R.id.button)).setOnClickListener(this); ((Button)findViewById(R.id.close_button)).setOnClickListener(this); } @Override public void onClick(View v) { switch(v.getId()){ case R.id.button: m_behaviour.setState(BottomSheetBehavior.STATE_EXPANDED); break; case R.id.close_button: m_behaviour.setState(BottomSheetBehavior.STATE_COLLAPSED); break; } } 

}

任何意见,将不胜感激。

Solutions Collecting From Web of "Androiddevise支持库24.2.1使BottomSheet在启动时打开"

 m_behaviour.setPeekHeight(0); 

它默认为“偷看”状态,所以如果你不希望它偷看,你需要设置偷看高度为0。

  app:behavior_peekHeight="0dp" app:layout_behavior="@string/bottom_sheet_behavior" 

您可以在布局中将peek高度设置为0dp,而不需要以编程方式进行设置