2016-05-05 2 views
0

Я попытался использовать поисковый виджет в своем проекте Xamarin.Forms, так как люди делают это в Xamarin.Android, но он не работает. Я хочу получить тот же результат, что и на изображении ниже. enter image description here Вот мой код:Xamarin.Forms Поиск Виджет не отображается

**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

код UI вы вывесили для Android, а не формы. – Jason

+0

Перед «Android.Widget.SearchView» это был «Android.Support.V7.Widget.SearchView». Я думал, что если я унаследовал от FormsAppCompatActivity, я могу реализовать свой виджет поиска, поскольку я модифицировал свою панель инструментов для создания меню гамбургера и вкладок для создания его красивого. Поэтому я подумал, что могу сделать это, если я закончил с моей панелью инструментов и вкладками. –

ответ

0

У меня был такая же проблема с Xamarin.Forms компонентами поиска.

Xamrin.Forms имеет элемент управления, который называется: SearchBar. Действительно ... на эмуляторе отображается, но когда вы устанавливаете приложение на устройстве Android (например, Samsung S8), SearchBar не видим.

Могу ли я сделать это: Установите высоту панели поиска вручную. 42 - это значение по умолчанию для SearchBar.

HeightRequest="42" 

Вопрос был адресован здесь https://bugzilla.xamarin.com/show_bug.cgi?id=43975

Смежные вопросы