2016-05-05 6 views
0

Ich habe versucht, Search Widget in meinem Xamarin.Forms-Projekt als Leute tun es in Xamarin.Android, aber es funktioniert nicht. Ich möchte das gleiche Ergebnis wie auf dem Bild unten sehen. enter image description here Hier ist mein Code:Xamarin.Forms Search Widget zeigt nicht

**Main Activity :** 
using System; 

using Android.App; 
using Android.Content.PM; 
using Android.Runtime; 
using Android.Views; 
using Android.Widget; 
using Android.OS; 
using Android.Support.V4.View; 
using Xamarin.Forms; 
using Xamarin.Forms.Platform.Android; 

using Android.Support.V4.App; 
using Android.Support.V4.Widget; 
using Android.Util; 
using Android.Support.V4.Content; 


namespace GitRemote.Droid 
{ 
    [Activity(Label = "GitRemote", MainLauncher = true, ConfigurationChanges =  ConfigChanges.ScreenSize | ConfigChanges.Orientation)] 
    public class MainActivity : FormsAppCompatActivity 
    { 

    protected override void OnCreate(Bundle bundle) 
    { 
     FormsAppCompatActivity.ToolbarResource = Resource.Layout.toolbar; 
     FormsAppCompatActivity.TabLayoutResource = Resource.Layout.tabs; 
     base.OnCreate(bundle); 
     Forms.Init(this, bundle); 
     LoadApplication(new App()); 

    } 

    public override bool OnCreateOptionsMenu(IMenu menu) 
    { 
     Android.Widget.SearchView searchView; 
     MenuInflater.Inflate(Resource.Menu.menu_home, menu); 

     var searchItem = menu.FindItem(Resource.Id.action_search); 
     var provider = MenuItemCompat.GetActionView(searchItem); 
     searchView = provider.JavaCast<Android.Widget.SearchView>(); 
     // searchView.SetIconifiedByDefault(false); 
     searchView.QueryTextSubmit += (sender, args) => 
     { 
      Toast.MakeText(this, "You searched: " + args.Query, ToastLength.Short).Show(); 
     }; 
     //searchView.QueryTextSubmit += (sender, args) => 
     //{ 

     // var view = sender as Android.Support.V7.Widget.SearchView; 
     // if (view != null) 
     //  view.ClearFocus(); 
     //}; 
     //return base.OnCreateOptionsMenu(menu); 
     return true; 
    } 
} 
} 

**menu_home:** 
<?xml version="1.0" encoding="utf-8" ?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <item android:id="@+id/action_search" 
     android:title="@string/search" 
     android:icon="@android:drawable/ic_menu_search" 
     app:showAsAction="always|withText" 
     app:actionViewClass="android.widget.SearchView"/> 

</menu> 
+0

der UI-Code Sie ist für Android veröffentlicht, nicht Forms. – Jason

+0

Vor "Android.Widget.SearchView" war es "Android.Support.V7.Widget.SearchView". Ich dachte, dass, wenn ich von FormsAppCompatActivity geerbt habe, ich mein Suchwidget implementieren kann, wie ich meine Symbolleiste für Hamburgermenü und Registerkarten für das Erschaffen es schön verfeinerte. So dachte ich, dass ich das tun könnte, wenn ich mit meiner Symbolleiste und Tabs fertig bin. –

Antwort

0

ich das gleiche Problem mit einer Xamarin.Forms Such-Komponente hatte.

Xamrin.Forms hat ein Steuerelement, das heißt: SearchBar. In der Tat ... auf dem Emulator wird angezeigt, aber wenn Sie die Anwendung auf einem Android-Gerät (z. B. Samsung S8) installieren, ist die SearchBar nicht sichtbar.

Ich kann eine Problemumgehung verwenden: Legen Sie die Höhe der Suchleiste manuell fest. 42 ist die Standardeinstellung für SearchBar.

HeightRequest="42" 

Das Problem wurde hier angesprochen https://bugzilla.xamarin.com/show_bug.cgi?id=43975

Verwandte Themen