大佬教程收集整理的这篇文章主要介绍了android – 如何禁用BottomSheetDialogFragment拖动,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何禁用BottomSheetDialogFragment手指拖动?
我看到了类似的问题,但它们都是关于BottomSheet而不是BottomSheetDialogFragment.
public class MyActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceStatE) {
super.onCreate(savedInstanceStatE);
setContentView(R.layout.activity_my);
new MyBottomSheetFragment().show(getSupportFragmentManager(),"tag");
}
public static class MyBottomSheetFragment extends BottomSheetDialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceStatE) {
BottomSheetDialog bottomSheetDialog = (BottomSheetDialog) super.onCreateDialog(savedInstanceStatE);
bottomSheetDialog.setContentView(R.layout.samplE);
try {
Field mBehaviorField = bottomSheetDialog.getClass().getDeclaredField("mBehavior");
mBehaviorField.setAccessible(true);
final BottomSheetBehavior behavior = (BottomSheetBehavior) mBehaviorField.get(bottomSheetDialog);
behavior.setBottomSheetCallBACk(new BottomSheetBehavior.bottomSheetCallBACk() {
@Override
public void onStateChanged(@NonNull View bottomSheet,int newStatE) {
if (newState == BottomSheetBehavior.STATE_DRAGGING) {
behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
}
@Override
public void onSlide(@NonNull View bottomSheet,float slideOffset) {
}
});
} catch (NoSuchFieldException E) {
e.printStackTrace();
} catch (illegalaccessexception E) {
e.printStackTrace();
}
return bottomSheetDialog;
}
}
}
R.layout.sample是一个简单的布局:
你会得到以下输出:
以上是大佬教程为你收集整理的android – 如何禁用BottomSheetDialogFragment拖动全部内容,希望文章能够帮你解决android – 如何禁用BottomSheetDialogFragment拖动所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。