是否有甚至內置的的組件?或者是下載這些庫,併爲他們做了大量的設置,我有最好的選擇?
NavigationView與DrawerLayout
實際上是實現可滑動漢堡面板的正式推薦方式。但正如你所說,要使用它,需要安裝Material Design(Android支持設計庫)。
如果你不想使用它。實際上有一種方法可以直接使用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
,使其滑動。你可以自己嘗試。
但我不能告訴哪種方式更容易,在我看來,這些安裝包將更加方便。要使用我上面提到的方法,許多作品需要由我們自己完成。例如,滑入/滑出動畫,手勢識別,甚至抽屜的邊框。所以是的,我個人認爲下載這些庫是最好的選擇。
編輯: 我忘記說了,如果你想有一個彈出側的抽屜裏,您可以嘗試使用自定義對話框。
好吧,我明白了。我會試着嘗試兩種選擇。謝謝! – Reynevan
我最終下載了Android支持庫,現在正在試驗。我設法創建了一個工具欄,但是所有的教程都說我應該把這個圖標設置爲'Resource.Drawable.ic_menu'的行,它不存在。我錯過了什麼,或者是我必須創建自己的文件? – Reynevan