我如何隐藏底层使用行为?

时间:2017-12-11 00:36:28

标签: android android-linearlayout behavior

我想在第一次加载Activity时隐藏底页。

然后当我点击按钮时,显示底部页面。

所以我这样设置,

<LinearLayout
        android:id="@+id/main_linearlayout_BottomSheet"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:behavior_hideable="true"
        app:behavior_peekHeight="200dp"
        app:layout_behavior="@string/bottom_sheet_behavior"
        android:background="@drawable/mappoint_edge"
        >

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        bottomSheet.setState(BottomSheetBehavior.STATE_HIDDEN);

}

单击按钮时

private void setButton() {

if (!state){
        bottomSheet.setState(BottomSheetBehavior.STATE_COLLAPSED);
    }else{
        bottomSheet.setState(BottomSheetBehavior.STATE_HIDDEN);
    }


}

但我有一些问题。

当我将bottomSheet.setState(BottomSheetBehavior.STATE_HIDDEN)放入onCreate时,即使点击,也只会显示bottomSheet,但是当我删除它时,bottomSheet隐藏并通过点击显示。

如果我想在第一次隐藏bottomSheet,我放置bottomSheet.setState(BottomSheetBehavior.STATE_HIDDEN)

如果你知道,请回复

2 个答案:

答案 0 :(得分:0)

onCreate

bottomSheetBehavior.setPeekHeight(0);
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);

当我展示时,

bottomSheetBehavior.setPeekHeight(200);
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);

答案 1 :(得分:-2)

在按钮的onClick()内使用:sheet.show()

然后,当您想要将其解雇时,请使用sheet.dismiss();

private void setButton() { 
    if (!state){ 
        bottomSheet.show() 
    }else{ 
        bottomSheet.dismiss() 
    }
}