Экран в Навигаторе Drawer (реагирует на навигацию 5.x) недоступен, если виска-тип постоянна - PullRequest
0 голосов
/ 07 апреля 2020

Я использую Drawer Navigator (React navigation 5.x) с тремя экранами - один стековый навигатор и 2 экрана. Когда я задаю в качестве постоянного элемента hookType постоянный, я могу получить доступ только к списку «Элементы ящика», когда включена функция «Доступность» (обратная связь). Как настроить фокус на панели подробностей или на экране ящика после прокрутки списка элементов ящика? Я попытался установить AccessibilityInfo.setAccessibilityFocus для сфокусированного экрана, даже это не сработало.

Можете ли вы дать мне знать, что мне здесь не хватает?

//@ts-check
import { createDrawerNavigator } from '@react-navigation/drawer';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import * as React from 'react';
import { Text, View } from 'react-native';

const Stack = createStackNavigator();
function Option3() {
  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      <Text>Option 3!</Text>
    </View>
  );
}
function Option2() {
  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
      <Text>Option 2!</Text>
    </View>
  );
}

function Screen1() {
  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: "blue" }}>
      <Text>Screen 1 !</Text>
    </View>
  );
}

function Option1Navigator() {
  return (
    <Stack.Navigator initialRouteName="Screen1"
      screenOptions={{
        headerTitleAlign: "center", headerStyle: { backgroundColor: "black" },
        headerTintColor: '#fff'
      }}>
      <Stack.Screen name="Screen1" component={Screen1} options={{ headerTitle: "Screen1" }} />
    </Stack.Navigator >
  );
}

const Drawer = createDrawerNavigator();

export default function App() {
  return (
    <NavigationContainer>
      <Drawer.Navigator  drawerStyle={{
        backgroundColor: '#c6cbef',
        width: 150
      }}>
        <Drawer.Screen name="Option1" component={Option1Navigator} />
        <Drawer.Screen name="Option2" component={Option2} />
        <Drawer.Screen name="Option3" component={Option3} />
      </Drawer.Navigator>
    </NavigationContainer>
  );
}
...