【问题标题】:Android Design Support Library 24.2.1 makes BottomSheet open on startupAndroid 设计支持库 24.2.1 使 BottomSheet 在启动时打开
【发布时间】:2017-01-25 01:24:13
【问题描述】:

从 23.4.0 版切换到 Android 设计支持库的 24.2.1 版后,BottomSheetBehavior 停止为我工作。调用setState(BottomSheetBehavior.STATE_COLLAPSED) 时,BottomSheet 显示为打开且未关闭。这不会发生在设计库的 23.4.0 中,BottomSheetBehaviour 按预期为我工作。

版本 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"/>

这是我正在使用的活动代码:

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

}

任何建议将不胜感激。

【问题讨论】:

标签: android android-support-library android-design-library bottom-sheet


【解决方案1】:
m_behaviour.setPeekHeight(0);

它默认为“peek”状态,所以如果你根本不希望它偷看,你需要将peek height设置为0。

【讨论】:

  • 谢谢,斯科特。最初设置 m_behaviour.setPeekHeight(0) 时,它按预期工作,例如在 onCreate()
【解决方案2】:
 app:behavior_peekHeight="0dp"
 app:layout_behavior="@string/bottom_sheet_behavior"

您可以在布局中将窥视高度设置为0dp,无需编程设置

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 2017-01-28
    • 2015-09-04
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    相关资源
    最近更新 更多