webview与Xamarin Android应用程序中的appbar重叠

webview与Xamarin Android应用程序中的appbar重叠,webview,xamarin.android,Webview,Xamarin.android,我正在使用带抽屉布局的xamarin android应用程序模板。我正在使用app_bar_main.axml中的webview。启动活动时。它与appbar重叠,不显示工具栏。我的appbar\u main.axml如下:我想显示webview,但在appbar下面。webview在工具栏下面,但工具栏的内容隐藏。我想显示工具栏的内容,以便在appbar.appbar\u main.axml中的工具栏中导航 <?xml version="1.0" encoding="utf-8"?>

我正在使用带抽屉布局的xamarin android应用程序模板。我正在使用app_bar_main.axml中的webview。启动活动时。它与appbar重叠,不显示工具栏。我的appbar\u main.axml如下:我想显示webview,但在appbar下面。webview在工具栏下面,但工具栏的内容隐藏。我想显示工具栏的内容,以便在appbar.appbar\u main.axml中的工具栏中导航

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/appBarLayout"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>
    <ProgressBar
     android:id="@+id/progressBar"
    android:layout_below="@id/toolbar"
     style="?android:attr/progressBarStyleHorizontal"
     android:layout_width="match_parent"
     android:layout_height="wrap_content" />
    <android.support.v4.widget.NestedScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="fill_vertical"
    android:layout_below="@id/progressBar"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <WebView
        android:id="@+id/StoreView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</android.support.v4.widget.NestedScrollView> 

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        app:srcCompat="@android:drawable/ic_dialog_email" />



</android.support.design.widget.CoordinatorLayout>

MainActivity.cs代码在这里。 app_bar_main.axml位于活动_main.axml中,由抽屉布局模板生成

    protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);
            Android.Support.V7.Widget.Toolbar toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
            SetSupportActionBar(toolbar);

            FloatingActionButton fab = FindViewById<FloatingActionButton>(Resource.Id.fab);
            fab.Click += FabOnClick;

            DrawerLayout drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
            ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, Resource.String.navigation_drawer_open, Resource.String.navigation_drawer_close);
            drawer.AddDrawerListener(toggle);
            toggle.SyncState();

            NavigationView navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
            navigationView.SetNavigationItemSelectedListener(this);

            // start store activity
            if (IsOnline() == true)
            {
                message = "items";
                var intent = new Intent(this, typeof(StoreActivity));
                intent.PutExtra("Data", "message");
                StartActivity(intent);
            }

        }
      ```

protectedoverride void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_main);
Android.Support.V7.Widget.Toolbar-Toolbar=findviewbyd(Resource.Id.Toolbar);
设置支持操作栏(工具栏);
FloatingActionButton fab=FindViewById(Resource.Id.fab);
生产线点击+=生产线点击;
抽屉布局抽屉=FindViewById(Resource.Id.drawer\u布局);
ActionBarDrawerToggle toggle=新建ActionBarDrawerToggle(此,抽屉,工具栏,Resource.String.navigation\u抽屉\u打开,Resource.String.navigation\u抽屉\u关闭);
抽屉。添加抽屉链接器(切换);
toggle.SyncState();
NavigationView NavigationView=FindViewById(Resource.Id.nav_视图);
navigationView.SetNavigationItemSelectedListener(此);
//启动门店活动
if(IsOnline()==true)
{
message=“items”;
var intent=新的intent(此,类型为(StoreActivity));
意向。额外(“数据”、“消息”);
星触觉(意向);
}
}
```

这是一个实现您的功能的简单演示。主要代码如下:
活动\u main.axml

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:background="#33B86C"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:layout_scrollFlags="scroll|enterAlways" />
<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer_layout"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:layout_width="match_parent">
    <FrameLayout
        android:background="@android:color/holo_purple"
        android:id="@+id/content_frame"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_height="match_parent"
        android:layout_width="200dp"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:menu="@menu/menu" />
 </android.support.v4.widget.DrawerLayout>
 </LinearLayout>


你能分享一些图片来展示你正在尝试做什么吗?另外,请共享web视图页面的代码和调用web视图页面的页面的代码。亲爱的,我有一个简单的xamarin android应用程序,带有抽屉布局导航模板,我们可以在其中显示webview,但它应该在工具栏下方。在我的应用程序中,当新活动(包含webview)启动时,它与屏幕上的所有内容重叠。我希望工具栏显示在webview上方。非常感谢亲爱的@Jessie Zhang,我仍然是学习者(新手)因此,如果您对MainActivity.cs的所有部分进行评论,以便我能够理解并表达我的逻辑,我将不胜感激。@FiazAhmed这是本演示的完整代码,您可以查看:
  public class MainActivity : AppCompatActivity
  {
    DrawerLayout drawer;
    NavigationView navigationView;

    private string mDrawerTitle;
    private string[] mContentTitles;

    Toolbar toolbar;

    protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        // Set our view from the "main" layout resource
        SetContentView(Resource.Layout.activity_main);


        mDrawerTitle = this.Title;
        mContentTitles= this.Resources.GetStringArray(Resource.Array.contents_array);

        toolbar = FindViewById<Toolbar>(Resource.Id.toolbar);
        SetSupportActionBar(toolbar);
        SupportActionBar.SetDisplayHomeAsUpEnabled(true); 
        SupportActionBar.SetDisplayShowTitleEnabled(false);
        SupportActionBar.SetHomeButtonEnabled(true);
        SupportActionBar.SetHomeAsUpIndicator(Resource.Drawable.ic_menu);
        // Get our button from the layout resource,
        // and attach an event to it
        drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
        navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
        if (navigationView != null)
            setupDrawerContent(navigationView);

        ActionBarDrawerToggle toggle = new MyActionBarDrawerToggle(this, drawer, toolbar, Resource.String.drawer_open, Resource.String.drawer_close);
        drawer.AddDrawerListener(toggle);
        toggle.SyncState();

        if (savedInstanceState == null) //first launch
        {
            toolbar.Title = mContentTitles[0];
            var fragment = WebviewFragment.NewInstance(0);

            var fragmentManager = this.FragmentManager;
            var ft = fragmentManager.BeginTransaction();
            ft.Replace(Resource.Id.content_frame, fragment);
            ft.Commit();
        }
    }

    void setupDrawerContent(NavigationView navigationView)
    {
        navigationView.NavigationItemSelected += (sender, e) => {

            int ItemId = e.MenuItem.ItemId;

            e.MenuItem.SetChecked(true);

            int index = 0;
            if (ItemId == Resource.Id.nav_home) {
                index = 0;
            } else if (ItemId == Resource.Id.nav_messages) {
                index = 1;
            }
            else if (ItemId == Resource.Id.nav_about)
            {
                index = 2;
            }

            // update the main content by replacing fragments
            var fragment = WebviewFragment.NewInstance(index);

            var fragmentManager = this.FragmentManager;
            var ft = fragmentManager.BeginTransaction();
            ft.Replace(Resource.Id.content_frame, fragment);
            ft.Commit();

            // update selected item title, then close the drawer
            mDrawerTitle = mContentTitles[index];


            drawer.CloseDrawers();
        };
    }    

    internal class WebviewFragment : Fragment
    {
        public const string ARG_NUMBER = "planet_number";

        public WebviewFragment()
        {
            // Empty constructor required for fragment subclasses
        }

        public static Fragment NewInstance(int position)
        {
            Fragment fragment = new WebviewFragment();
            Bundle args = new Bundle();
            args.PutInt(WebviewFragment.ARG_NUMBER, position);
            fragment.Arguments = args;
            return fragment;
        }

        public override View OnCreateView(LayoutInflater inflater, ViewGroup container,
                                           Bundle savedInstanceState)
        {
            View rootView = inflater.Inflate(Resource.Layout.fragment_content2, container, false);
            var i = this.Arguments.GetInt(ARG_NUMBER);
            var url = this.Resources.GetStringArray(Resource.Array.weburls_array)[i];

            var title = this.Resources.GetStringArray(Resource.Array.contents_array)[i];

            var web_view = rootView.FindViewById<WebView>(Resource.Id.webview);
            web_view.Settings.JavaScriptEnabled = true;
            web_view.SetWebViewClient(new HelloWebViewClient());
            web_view.LoadUrl(url);


            this.Activity.Title = title;
            return rootView;
        }
    }

    internal class MyActionBarDrawerToggle : ActionBarDrawerToggle
    {
        MainActivity owner;

        public MyActionBarDrawerToggle(MainActivity activity, DrawerLayout layout, Toolbar toolbar, int openRes, int closeRes)
            : base(activity, layout, toolbar, openRes, closeRes)
        {
            owner = activity;
        }

        public override void OnDrawerClosed(View drawerView)
        {
            owner.toolbar.Title = owner.Title;
            owner.InvalidateOptionsMenu();
        }

        public override void OnDrawerOpened(View drawerView)
        {
            owner.toolbar.Title = owner.mDrawerTitle;
            owner.InvalidateOptionsMenu();
        }
    }
}
  <resources>
  <string name="app_name">DrawLayoutApp</string>
  <string name="action_settings">Settings</string>
  <string name="drawer_open">Open navigation drawer</string>
  <string name="drawer_close">Close navigation drawer</string>

  <string-array name="contents_array">
    <item>Home</item>
    <item>Messages</item>
    <item>About</item>
 </string-array>
 <string-array name="weburls_array">
   <item>https://www.google.com/</item>
   <item>https://msdn.itellyou.cn/</item>
   <item>https://www.baidu.com/</item>
 </string-array>
</resources>
 <?xml version="1.0" encoding="utf-8" ?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
 <group android:checkableBehavior="single">
 <item
    android:id="@+id/nav_home"
    android:title="Home" />
 <item
    android:id="@+id/nav_messages"
    android:title="Messages" />
 <item
    android:id="@+id/nav_about"
    android:title="About" />
</group>
</menu>