我已经创建了一个带有底部表和列表视图构建器的应用程序。在底部,当我将其向上拖动时必须出现一个文本按钮底部表必须出现。底页上有一个表格。我用 SingleChildScrollView 包裹了底页。但是当我单击 TextFormField 键盘时,我可以滚动底部工作表。但是我无法将其向下拖动并关闭底部工作表。即使我按下手机中的后退箭头以摆脱键盘。
import 'package:flutter/material.dart';
class Home extends StatefulWidget {
const Home({Key key}) : super(key: key);
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
@override
Widget build(BuildContext context) {
var width = MediaQuery.of(context).size.width;
return Scaffold(
resizeToAvoidBottomInset: false,
body: Stack(
children: [
ListView.builder(
itemCount: 1,
itemBuilder: (context, index) {
return Card(
);
}),
Positioned(
bottom: 0,
child: GestureDetector(
onPanEnd: (details) {
if (details.velocity.pixelsPerSecond.dy < 10) {
//Bottom Sheet.................................................................................................................
showModalBottomSheet(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.vertical(
top: Radius.circular(25)),
), …Run Code Online (Sandbox Code Playgroud) 我有一个自定义的BottomSheetDialog布局,我创建了可绘制的布局,它具有顶角圆角矩形。BottomSheetDialog布局背景是 a Linearlayout,我将可绘制对象应用于布局。底部工作表的顶角正确舍入,但线性布局的另一个布局底部不是圆角的(方形和白色见下图),并且它不在布局中.xml 文件。它就像正方形顶部的圆角矩形。我无法摆脱那个正方形。
以下是我的定制底板样本
public abstract class EmployeeBottomSheetDialog extends BottomSheetDialog {
private Context context;
private Activity activity;
private RecyclerView employeeRecyclerView;
private EditText searchEditText;
private DataBase dataBase;
private ArrayList<Employe> employeeList = new ArrayList<>();
private ArrayList<Employe> employeeSelectedList = new ArrayList<>();
private SelectEmployeeAdapter selectEmployeeAdapter;
private ImageButton closeSearchImageButton;
public EmployeeBottomSheetDialog(@NonNull Context context, List<Employe> selectedEmployeeList) {
super(context,R.style.BottomSheetDialogStyle);
this.context = context;
this.activity = (Activity) context;
if(!selectedEmployeeList.isEmpty()){
employeeSelectedList.clear();
employeeSelectedList.addAll(selectedEmployeeList);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.employee_bottom_sheet_dialog);
}
} …Run Code Online (Sandbox Code Playgroud)