2016-04-18 9 views
0

私のアプリケーションでは、サイドバーが必要です。最初は、私は、サイドローラーを含むplugin from Telerikを使って考えました。しかし、その後、私はhereを見つけましたが、このプラグインはNativescript/Angular 2プロジェクトではまだ使用できませんでした。次に、Nativescriptのplaceholderについて、iOS/Androidネイティブウィジェットを使用できるようになりました。モバイルOS固有のウィジェットを使用する

AndroidのNavigation drawerを使用することができましたが、typescriptコンパイラ(tsc)が「アンドロイド」という名前を認識できないというエラーが表示されます(プレースホルダに関するリンクを参照)。

はここ

+0

ビルドしようとした後、またはtypescript intellisenseの中でこのエラーが発生しましたか?インテリセンスのエラー "名前を見つけることができませんアンドロイド" "あなたはそれを無視する必要があります - あなたのプロジェクトは問題なく構築され、あなたはAndroidとiOSからのネイティブAPIにアクセスします。 –

+0

コンソールに 'tsc'コマンドを入力すると、そのエラーが発生します。 –

+0

あなたは私たちといくつかの情報を共有してください...あなたが実行しているコマンドやビルドしようとしているコードのいくつかなど –

答えて

1

がサイドの引き出しなどのネイティブのAndroid引き出しレイアウトの基本的な実装であるあなたの助けをいただき、ありがとうございます。あなたに

あなたのpage.xmlで

<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="navigatingTo"> 
    <Placeholder creatingView="creatingView"/> 
</Page> 

var app = require("application"); 
var drawer; 
var page; 
var appContext; 
function navigatingTo(args) { 
    page = args.object; 
    appContext = app.android.context; 
} 
exports.navigatingTo = navigatingTo; 

function creatingView(args) { 
    // init DrawerLayout 
    drawer = new android.support.v4.widget.DrawerLayout(appContext); 
    var frame = new android.widget.FrameLayout(appContext); 

    // here you can use ListView with Adapters if you prefer 
    var linearMenu = new android.widget.LinearLayout(appContext); 
    linearMenu.setOrientation(1); 

    // adding the menu options 
    var textView1 = new android.widget.TextView(appContext); 
    textView1.setText("ITEM 1"); 
    var textView2 = new android.widget.TextView(appContext); 
    textView2.setText("ITEM 2"); 
    var textView3 = new android.widget.TextView(appContext); 
    textView3.setText("ITEM 3"); 

    // setting layout params 
    var lp = new android.support.v4.widget.DrawerLayout.LayoutParams(100,  android.widget.LinearLayout.LayoutParams.MATCH_PARENT); 
    lp.gravity = android.view.Gravity.START; 

    linearMenu.setLayoutParams(lp); 
    linearMenu.addView(textView1); 
    linearMenu.addView(textView2); 
    linearMenu.addView(textView3); 

    // finally adding the elements to the DrawerLayout and attaching it to the NativeScript placeholder 
    drawer.addView(frame, new android.support.v4.widget.DrawerLayout.LayoutParams(android.view.ViewGroup.Layou tParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT)); 
    drawer.addView(linearMenu); 
    args.view = drawer; 
} 
exports.creatingView = creatingView; 

これは無転移の効果および添付なしベントリスナーと非常に基本的な例ですが、それでもとしてスワイプで動作しますがpage.jsネイティブAPIを使用して{N}にドロワーを作成する方法をデモンストレーションしています。あなたのプロジェクトに役立つことを願っています。

+0

遅く返事を申し訳ありません。あなたのコードを試してみましたが、それはうまくいきますが、NativescriptとAngular 2を使用して開発しているので、いくつかの違いがあると思います(正しく入力したときに関数creatingViewを使用できると確信しています)今私はまだページ上に何も得ていない。 お時間をいただきありがとうございます –

関連する問題