Проблема Flutter Android Tv Focus: первый индекс не фокусируется с помощью стрелки, он начинается со второго индекса, ноAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Проблема Flutter Android Tv Focus: первый индекс не фокусируется с помощью стрелки, он начинается со второго индекса, но

Сообщение Anonymous »

В приложении «ТВ» я пытаюсь интегрировать список предложений. Я вызвал функцию ландшафта и открыл список предложений с помощью dpad. Первый индекс не фокусируется с помощью стрелки, он начинается со второго индекса, но при использовании вкладки на ПК он фокусируется на первом элементе. р>

Код: Выделить всё

  @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,
),
),
),
),
);
},
),
);
}
Я перепробовал все возможное, чтобы решить эту проблему, но не сработало.
введите описание изображения здесь

Подробнее здесь: https://stackoverflow.com/questions/782 ... -start-fro
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»