2017-05-06 12 views
0

右から左にではなく左から右にメニューをレンダリングする方法はありますか? ナビゲーションバーの右ボタンからクリックされても問題ありません。左ボタンの代わりに を押すと、画面外にレンダリングされます。ナビゲーションバーの左ボタンからクリックすると、メニューがオフスクリーンで表示されます

+0

問題を示すためのコード例を投稿できますか? – madox2

+0

@ madox2はい、ここにあります:https://pastebin.com/xvwK7V0B –

+0

どのナビゲーションを使用しますか?反応ナビゲーション? – sodik

答えて

1

ここでは、反応ナビゲーションでポップアップメニューを使用する簡単な例を示します。メニューは、headerRightheaderLeftプレースホルダの両方にレンダリングされます。それは両側で正しく表示されます。

import React from 'react'; 
import { AppRegistry, Text } from 'react-native'; 
import { StackNavigator } from 'react-navigation'; 
import Menu, { 
    MenuContext, 
    MenuOptions, 
    MenuOption, 
    MenuTrigger 
} from 'react-native-popup-menu'; 

const NavigatorMenu = ({ navigation }) => (
    <Menu> 
    <MenuTrigger text='...' /> 
    <MenuOptions> 
     <MenuOption 
     onSelect={() => navigation.navigate('Page2')} 
     text='Navigate Page 2' 
     /> 
     <MenuOption 
     onSelect={() => navigation.navigate('Page3')} 
     text='Navigate Page 3' 
     /> 
    </MenuOptions> 
    </Menu> 
); 

class Home extends React.Component { 
    static navigationOptions = ({ navigation }) => ({ 
    title: 'Home', 
    headerRight: <NavigatorMenu navigation={navigation} />, 
    headerLeft: <NavigatorMenu navigation={navigation} />, 
    }); 
    render() { 
    return <Text>Home Page</Text>; 
    } 
} 

const Page2 =() => <Text>2nd Page</Text>; 
const Page3 =() => <Text>3rd Page</Text>; 

const TopStackNavigator = StackNavigator({ 
    Home: { screen: Home }, 
    Page2: { screen: Page2 }, 
    Page3: { screen: Page3 }, 
}); 

const App =() => (
    <MenuContext> 
    <TopStackNavigator /> 
    </MenuContext> 
); 

AppRegistry.registerComponent('examples',() => App); 

それはとAndroid上でテストされました:

  • 反応し、ネイティブ:0.37.0
  • 反応し、ネイティブ・ポップアップ・メニューを:0.7.3
  • 反応ナビゲーション:1.0.0-beta
+0

あなたの努力のおかげでありがとう、私は私のコードの間に違いがあるかどうかを確認しようとするが、私はその種類のヘッダーを使用しない:)その3つのボタンを持つちょうど "偽のヘッダー"、ちょうど通常のビュー。お知らせいたします。あまりにもありがとうございました:) –

+0

@AntonioGallo私はそれを再現できるように、いくつかの最小runnalbeコードを提供することができます。とにかく、新しい質問を開いたり、この質問を更新してください。 – madox2

+0

私はそれが反応しないことを確認します。その右側のok;また、MenuContextはflexを必要とします。私はナビゲータなしでポップアップメニューを追加するだけで、最初から新しいプロジェクトを作成しようとします。 "反応": "16.0.0-alpha.6"、 は "反応するネイティブ": "^ 0.44.0"、 "反応するネイティブ・メニューを": "^ 0.20.2" を、 "react-navigation": "^ 1.0.0-beta.9" –

0

解決済み。テスト中、私は反応ネイティブメニューと反応ネイティブポップアップメニューを混ぜていました。私は両方をインストールしました。そして、Webstormはそれらを混在させている両方のライブラリのために私を輸入してくれました。

+0

これは最終的に ' native-popup-menu'? – madox2

+0

@ madox2はい! :) –

関連する問題