2017-10-23 10 views
0

私は自分のアプリでDrawerNavigatorを使用しています。これは私のコード間違った引き出し幅

私app.jsで

<Provider store={store}> 
      <RootContainer /> 
      </Provider> 

RootContainder

const AppDrawer = DrawerNavigator(
{ 
    Home: { 
    path: '/', 
    screen: WelcomeContainer, 
    }, 
    Category: { 
    path: '/list', 
    screen: listContainer, 
    }, 
}, 
{ 
    contentComponent: SideMenu, 
    initialRouteName: 'Home', 
    contentOptions: { 
    activeTintColor: '#4edb6d', 
    }, 
} 
); 

であると私は私のstackNavigato上の引き出しを埋め込む

const AppNavigator = StackNavigator({ 
    Home: { 
    screen: AppDrawer, 
    navigationOptions: ({navigation}) => ({ 

問題lanscapeでということですモードで使用するか、タブレットでは引き出しが画面サイズの約80%を使用します。 2つ目の問題は、デバイスの向きが変更されたときに幅が再計算されないことです。デバイスを横向きにしてから縦向きに変更すると、ドロワの幅がデバイスの幅より大きくなります。あなたはこれを修正する方法を知っていますか?

答えて

0

最初にの問題drawerWidth: (width you want)をDrawerNavigatorConfigに追加します。私は以下のソリューションを提案

第二問題:

  • 使用が反応し、ネイティブの向きDimensions.get('window').widthを使用して幅 を計算する関数(例えばcalculateScreenWidth)を書く
  • 姿勢の変化に耳を傾けるをし、 screenWidth(またはこれまでにお望みのもの)として設定してください
  • calculateScreenWidthを毎回呼び出します。orientationChangesは_orientationDidChangeを使用して反応ネイティブ方向
  • 最後に、drawerWidth:this.state.screenWidthとします。

これが役に立ちます。

関連する問題