Want to do
Open navigation drawer by clicking normal button on Fragment as same as clicking navigation icon.
Relation of code and xml
MainActivity.cs - activity_main.xml
EventFragment.cs - event_fragment.xml
FilterNavi.cs - filter_navigation.xml (I am not sure that which is the best for FilterNavi.cs Fragment or Activity.)
Code Error Message
System.NullReferenceException: 'Object reference not set to an instance of an object.'
Code
EventFragment.cs
public class EventFragment : AndroidX.Fragment.App.FragmentNavigationView.IOnNavigationItemSelectedListener, TabLayout.IOnTabSelectedListener
{
DrawerLayout drawer;
Button btn_drawer ;
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Create your fragment here
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.Inflate(Resource.Layout.event_fragment, container, false);
drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout2);
btn_drawer = FindViewById<Button>(Resource.Id.btn_drawer);
btn_drawer.Click += Btn_Drawer_Click;
}
private void Btn_Drawer_Click(object sender, EventArgs args)
{
drawer.OpenDrawer(GravityCompat.Start);
}
filter_navigation.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/test"
android:layout_width="match_parent"
android:layout_height="58dp"
android:text="test"
android:textSize="12dp"
android:gravity="center">
</TextView>
</LinearLayout>
</com.google.android.material.navigation.NavigationView>
</androidx.drawerlayout.widget.DrawerLayout>
What I tried
I tried getView() and getActivity() but error told me that they don't exist in the current context .
m_drawer = (DrawerLayout) getActivity().findViewById(Resource.Id.drawer_layout2);
I also tried to get m_drawer and update view.
m_drawer was not null but navigation drawer didn't open.
View viewFilter = inflater.Inflate(Resource.Layout.filter_navigation, container, false);
m_drawer = viewFilter.FindViewById<DrawerLayout>(Resource.Id.drawer_layout2);
View view = inflater.Inflate(Resource.Layout.event_fragment, container, false);