我正在嘗試使用Visual Studio 2017在Xamarin中創建導航抽屜。 我在谷歌的一些研究之後創建了導航抽屜。但是當我嘗試從菜單中打開活動時,導航抽屜會消失。Xamarin中的多個活動中的導航抽屜Android
我想在所有活動中使用我的導航抽屜,而不是在所有活動中重複它。
鏈接到我的項目:https://github.com/Chindara/XamarinAndroidNavigationDrawer
我正在嘗試使用Visual Studio 2017在Xamarin中創建導航抽屜。 我在谷歌的一些研究之後創建了導航抽屜。但是當我嘗試從菜單中打開活動時,導航抽屜會消失。Xamarin中的多個活動中的導航抽屜Android
我想在所有活動中使用我的導航抽屜,而不是在所有活動中重複它。
鏈接到我的項目:https://github.com/Chindara/XamarinAndroidNavigationDrawer
當您單擊菜單項,就應該導航到Fragment而不是Activity
,Framework
還可以顯示用戶界面。如果你這樣做,當你選擇Fragment
,navigation drawer
將永遠在你的Activitiy
,如this。以下是關於如何在Xamarin
中使用Fragment
的document。
當您選擇的菜單項:
navigationView.NavigationItemSelected += (sender, e) =>
{
e.MenuItem.SetChecked(true);
FragmentTransaction ft = this.FragmentManager.BeginTransaction();
if (e.MenuItem.ItemId == Resource.Id.nav_MGrade)
{
MGradeFragment mg = new MGradeFragment();
// The fragment will have the ID of Resource.Id.fragment_container.
ft.Replace(Resource.Id.ll, mg);
}
else if(e.MenuItem.ItemId == Resource.Id.home)
{
//...
}
//...
// Commit the transaction.
ft.Commit();
drawerLayout.CloseDrawers();
};
MGradeFragment.class
,做同樣的事情,你MGradeActivity
:
public class MGradeFragment : Fragment
{
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Create your fragment here
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Use this to return your custom view for this Fragment
// return inflater.Inflate(Resource.Layout.YourFragment, container, false);
View view = LayoutInflater.From(Activity).Inflate(Resource.Layout.MGradesView, null);
return view;
}
}
的MGradeFragment
將取代LinearLayout
在Main.axml:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/ll"
>
<include
layout="@layout/toolbar" />
</LinearLayout>
而且在你的toolbar.axml
,修改代碼:
<android.support.design.widget.CoordinatorLayout
....
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="wrap_content">//Change match_parent to wrap_content
非常感謝@ york-shen。非常有用的詳細答案。我已經用解決方案更新了我的GitHub項目。 – Chindara
你,當你打開一個活動,導航抽屜仍然 上的活動顯示是什麼意思? –
@YorkShen否。當我從導航抽屜打開活動時,活動將在沒有導航抽屜的情況下打開。 – Chindara
對不起,我沒有真正理解這句話的意思,「我的所有活動中都有導航抽屜,沒有在所有活動中重複」,你能解釋一下嗎? –