В приложении «ТВ» я пытаюсь интегрировать список предложений. Я вызвал функцию ландшафта и открыл список предложений с помощью dpad. Первый индекс не фокусируется с помощью стрелки, он начинается со второго индекса, но при использовании вкладки на ПК он фокусируется на первом элементе. р>
В приложении «ТВ» я пытаюсь интегрировать список предложений. Я вызвал функцию ландшафта и открыл список предложений с помощью dpad. Первый индекс не фокусируется с помощью стрелки, он начинается со второго индекса, но при использовании вкладки на ПК он фокусируется на первом элементе. р> [code] @override Widget build(BuildContext context) { if (_showSlider) { //FocusScope.of(context).requestFocus(lastItemFocusNode); } return WillPopScope( onWillPop: onBackPressed, child: Scaffold( backgroundColor: Colors.black, body: SafeArea( child: Stack( children: [ Center( child: _buildPage(), ), if (_showSlider) RawKeyboardListener( focusNode: FocusNode(), onKey: (RawKeyEvent event) { print('object'); _resetSliderTimer(); }, child: Align( alignment: Alignment.bottomCenter, child: SizedBox( width: MediaQuery.of(context).size.width, child:landscape(videoDetailsProvider.sectionDetailModel.getRelatedVideo), ), ), ), ), ], ), ), ), ); }
Widget landscape(List? relatedDataList) { if (relatedDataList == null || relatedDataList.isEmpty) { // Return a placeholder widget when the relatedDataList is null or empty return Placeholder(); }
return Container( width: MediaQuery.of(context).size.width, height: Dimens.heightLand, margin: const EdgeInsets.only(top: 12), child: ListView.separated( itemCount: relatedDataList.length, shrinkWrap: true, padding: const EdgeInsets.fromLTRB(12, 0, 0, 0), scrollDirection: Axis.horizontal, separatorBuilder: (context, index) => const SizedBox(width: 0), itemBuilder: (BuildContext context, int index) { final focusNode = index == 0 ? lastItemFocusNode : null; FocusScope.of(context).requestFocus(focusNode); return Focus( focusNode: focusNode, child: FocusBase( onFocus: (isFocused) { }, focusColor: white, onPressed: () async { log("Clicked on index ==> $index"); openDetailPage( index, relatedDataList[index].id ?? 0, relatedDataList[index].upcomingType ?? 0, relatedDataList[index].videoType ?? 0, relatedDataList[index].typeId ?? 0, ); }, child: Container( width: Dimens.widthLand, height: Dimens.heightLand, alignment: Alignment.center, child: ClipRRect( borderRadius: BorderRadius.circular(4), clipBehavior: Clip.antiAliasWithSaveLayer, child: MyNetworkImage( imageUrl: relatedDataList[index].landscape.toString() ?? "", fit: BoxFit.cover, imgHeight: MediaQuery.of(context).size.height, imgWidth: MediaQuery.of(context).size.width, ), ), ), ), ); }, ), ); } [/code] Я перепробовал все возможное, чтобы решить эту проблему, но не сработало. введите описание изображения здесь