che*_*ran 2 xamarin.ios xamarin.android xamarin.forms
我需要在 Xamarin Android 和 Xamarin iOS 的应用程序中使用搜索栏。
我必须在我的应用程序中实现以下搜索栏。
请找到xaml中使用的代码,
<Frame Padding="0" OutlineColor="DarkGray" HasShadow="True" HorizontalOptions="FillAndExpand" VerticalOptions="Center">
<SearchBar x:Name="searchBar" Placeholder="Search" PlaceholderColor="LightGray" TextColor="#000000" HorizontalOptions="FillAndExpand" VerticalOptions="Center" TextChanged="SearchBar_TextChanged"/>
</Frame>
Run Code Online (Sandbox Code Playgroud)
我的搜索栏如下所示,需要从 xamarin android 中删除突出显示的行。
还可以找到搜索栏渲染器代码,
protected override void OnElementChanged(ElementChangedEventArgs<SearchBar> e)
{
base.OnElementChanged(e);
var color = global::Xamarin.Forms.Color.LightGray;
var searchView = (Control as SearchView);
var searchIconId = searchView.Resources.GetIdentifier("android:id/search_mag_icon", null, null);
if (searchIconId > 0)
{
var searchPlateIcon = searchView.FindViewById(searchIconId);
(searchPlateIcon as ImageView).SetColorFilter(color.ToAndroid(), PorterDuff.Mode.SrcIn);
}
var symbolView = (Control as SearchView);
var symbolIconId = symbolView.Resources.GetIdentifier("android:id/search_close_btn", null, null);
if(symbolIconId>0)
{
var symbolPlateIcon = symbolView.FindViewById(symbolIconId);
(symbolPlateIcon as ImageView).SetColorFilter(color.ToAndroid(), PorterDuff.Mode.SrcIn);
}
}
Run Code Online (Sandbox Code Playgroud)
Xamarin 安卓: 我使用框架控件在搜索栏中显示边框。我必须删除搜索栏边框底线或边框颜色。
Xamarin iOS: 我必须实现搜索栏控制,如图所示。我必须在搜索时删除搜索栏中显示的取消字。还需要删除其中的半径。
有人对此提出建议吗?
在 Android 中,您可以通过找到 search_plateid并将其设置为Transparent,如下所示:
if (Control != null)
{
var color = global::Xamarin.Forms.Color.LightGray;
var searchView = Control as SearchView;
int searchPlateId = searchView.Context.Resources.GetIdentifier("android:id/search_plate", null, null);
Android.Views.View searchPlateView = searchView.FindViewById(searchPlateId);
searchPlateView.SetBackgroundColor(Android.Graphics.Color.Transparent);
}
Run Code Online (Sandbox Code Playgroud)
在iOS中,你可以找到UISearchBar的Textfield,然后自定义它的边框样式。并通过设置为 false 来删除“取消”按钮ShowsCancelButton。例如,像这样:
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (Control != null)
{
Control.ShowsCancelButton = false;
UITextField txSearchField = (UITextField)Control.ValueForKey(new Foundation.NSString("searchField"));
txSearchField.BackgroundColor = UIColor.White;
txSearchField.BorderStyle = UITextBorderStyle.None;
txSearchField.Layer.BorderWidth = 1.0f;
txSearchField.Layer.CornerRadius = 2.0f;
txSearchField.Layer.BorderColor = UIColor.LightGray.CGColor;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6939 次 |
| 最近记录: |