2017-07-25 10 views
0

私はAndroidバージョン5.0を最小値4.4に設定しています。私は、ユーザーがアプリケーションのオプション/ページを選択できる簡単なサイドメニューを作成したいと思います。Xamarin.Androidでハンバーガーパネル/サイドドロワーを作成するにはどうすればよいですか? (5.0+)

私が直面している問題は、さまざまなブログ、フォーラム、ドキュメントページでこれに対する推奨される解決策の数です。それらの多くは、下位互換性のためのライブラリをサポートするだけでなく、さまざまなコンポーネントや追加のライブラリをダウンロードする必要があります。

下位互換性が不要で、醜い新しいマテリアルデザインを念頭に置いてAndroidアプリケーションを作成したい場合は、どのような方法を使用できますか?

そのための組み込みコンポーネントがありますか?あるいは、これらのライブラリをダウンロードして、私が持っている最良の選択肢のためにそれらのためにたくさんのセットアップをしていますか?

答えて

1

これには組み込みコンポーネントがありますか?あるいは、これらのライブラリをダウンロードして、私が持っている最良の選択肢のためにそれらのためにたくさんのセットアップをしていますか?

NavigationViewDrawerLayoutは実際には摺動可能なハンバーガーパネルを達成するための公式の推奨方法です。しかし、あなたが言ったように、それを使用するには、Material Design(Android Support Design Library)をインストールする必要があります。

使用しない場合は、実際には、Fragmentを直接使用してサイド・ドロワを実装する方法があります。あなたの活動のレイアウトでは

:背後

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <LinearLayout 
       android:id="@+id/sidedrawer" 
       android:orientation="vertical" 
       android:layout_height="match_parent" 
       android:layout_width="wrap_content" 
       android:background="@drawable/drawerborder"> 
    <Button android:id="@+id/home" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="HOME" /> 
    <Button android:id="@+id/settings" 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="SETTINGS" /> 
    </LinearLayout> 
    <FrameLayout android:id="@+id/container" 
       android:layout_height="match_parent" 
       android:layout_width="wrap_content" /> 
</LinearLayout> 

コード:たとえば

protected override void OnCreate(Bundle savedInstanceState) 
{ 
    base.OnCreate(savedInstanceState); 

    // Create your application here 
    SetContentView(Resource.Layout.layout1); 

    Button home = FindViewById<Button>(Resource.Id.home); 
    home.Click += (sender, e) => 
    { 
     FragmentTransaction transaction = this.FragmentManager.BeginTransaction(); 
     HomeFragment homefragment = new HomeFragment(); 
     transaction.Replace(Resource.Id.container, homefragment).Commit(); 
    }; 

    Button settings = FindViewById<Button>(Resource.Id.settings); 
    settings.Click += (sender, e) => 
    { 
     FragmentTransaction transaction = this.FragmentManager.BeginTransaction(); 
     SettingsFragment settingsfragment = new SettingsFragment(); 
     transaction.Replace(Resource.Id.container, settingsfragment).Commit(); 
    }; 
} 

私はそれをスライド可能にするためにsidedrawerにジェスチャーとアニメーションを追加しませんでした。あなたは自分でそれを試すことができます。

しかし、どちらの方が簡単かはわかりませんが、私の意見では、これらのパッケージをインストールする方が便利です。私が上に述べた方法を使うためには、自分自身で多くの仕事をする必要があります。たとえば、スライドイン/スライドアウトアニメーション、ジェスチャ認識、引き出しの境界線までです。そう、はい、私は個人的にこれらのライブラリをダウンロードすることが最良の選択だと思います。

編集: ポップアップサイドの引き出しが必要な場合は、カスタムダイアログを使用してみてください。

+0

さて、わかりました。私は両方のオプションを試してみるつもりです。ありがとう! – Reynevan

+0

私はAndroidサポートライブラリのダウンロードを終了し、今すぐ実験しています。私はツールバーを作成することができましたが、すべてのチュートリアルでは、存在しない 'Resource.Drawable.ic_menu'の行に沿ってアイコンを設定する必要があると言われています。私は何かを見逃しているのですか、それとも自分自身を作り上げなければならないファイルですか? – Reynevan

関連する問題