Android 设计支持库 24.2.1 使 BottomSheet 在启动时打开
Android Design Support Library 24.2.1 makes BottomSheet open on startup
从版本 23.4.0 切换到 Android 设计支持库的版本 24.2.1 后,BottomSheetBehavior 停止为我工作。 BottomSheet 在调用 setState(BottomSheetBehavior.STATE_COLLAPSED)
时显示为打开且不会关闭。这不会发生在 BottomSheetBehaviour 按预期为我工作的设计库的 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;
}
}
}
如有任何建议,我们将不胜感激。
m_behaviour.setPeekHeight(0);
它默认为"peek"状态,所以如果你根本不想让它偷看,你需要将偷看高度设置为0。
app:behavior_peekHeight="0dp"
app:layout_behavior="@string/bottom_sheet_behavior"
您可以在布局中将 peek 高度设置为 0dp,无需通过编程方式设置
从版本 23.4.0 切换到 Android 设计支持库的版本 24.2.1 后,BottomSheetBehavior 停止为我工作。 BottomSheet 在调用 setState(BottomSheetBehavior.STATE_COLLAPSED)
时显示为打开且不会关闭。这不会发生在 BottomSheetBehaviour 按预期为我工作的设计库的 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;
}
}
}
如有任何建议,我们将不胜感激。
m_behaviour.setPeekHeight(0);
它默认为"peek"状态,所以如果你根本不想让它偷看,你需要将偷看高度设置为0。
app:behavior_peekHeight="0dp"
app:layout_behavior="@string/bottom_sheet_behavior"
您可以在布局中将 peek 高度设置为 0dp,无需通过编程方式设置