- 最外層使用GestureDetector
- GestureDetector添加 點擊 和 滑動 事件監(jiān)聽
- 判斷鍵盤是否是彈起狀態(tài)
- 使用系統(tǒng)方法FocusManager收起鍵盤
/// ListView Widget
Widget _buildListView() {
return GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: () { /// 頁面點擊響應
searchModule.closeKeyboard(context);
},
onPanDown: (_) { /// 列表滑動響應
searchModule.closeKeyboard(context);
},
child: Container(
color: themeModule.themeData.backgroundColor,
child: ListView.builder(
itemCount: searchModule.results.length,
itemBuilder: (context, index) {
return Material(
child: Ink(
color: Colors.white,
child: InkWell(
onTap: () {
_itemOnClick(index, searchModule.results[index]);
},
child: Container(
child: _buildListItem(
searchModule.results[index], index),
),
),
),
);
}
),
)
);
}
void closeKeyboard(BuildContext context) {
FocusScopeNode currentFocus = FocusScope.of(context);
/// 鍵盤是否是彈起狀態(tài)
if (!currentFocus.hasPrimaryFocus && currentFocus.focusedChild != null) {
FocusManager.instance.primaryFocus.unfocus();
}
}
最后編輯于 :
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者