Как уменьшить размер шрифта заполнителя в формах xamarin? - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть интерфейс, где текст заполнителя соответствует строке поиска.Это тот интерфейс, который мне нужен.

Это мой интерфейс

Это мой пользовательский код рендерера

[assembly: ExportRenderer(typeof(searchTab), typeof(StyledSearchBarRenderer))]
namespace RestaurantApp.Droid.Renderers
{
#pragma warning disable CS0618 // Type or member is obsolete
    class StyledSearchBarRenderer : SearchBarRenderer
    {
        protected override void OnElementChanged(ElementChangedEventArgs<SearchBar> e)
        {
            base.OnElementChanged(e);
            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);

                int searchIconId = Context.Resources.GetIdentifier("android:id/search_mag_icon", null, null);
                ImageView searchViewIcon = (ImageView)searchView.FindViewById<ImageView>(searchIconId);
                searchViewIcon.SetImageDrawable(null);

            }
        }
    }
#pragma warning restore CS0618 // Type or member is obsolete
}

Это мой код XAML

 <Frame CornerRadius="10" Padding="0" OutlineColor="DarkGray" HasShadow="True" HorizontalOptions="Fill"  Margin="10,0,10,0" VerticalOptions="Center">
                <local:searchTab x:Name="searchBar"  Placeholder="Please search for a vendor or product name" PlaceholderColor="Black" TextColor="Black" HorizontalOptions="FillAndExpand" VerticalOptions="Center" />

            </Frame>

Я не знаю, как это исправить.Есть предложения?

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Чтобы изменить HintText из SearchView, нам нужно найти EditText из SearchView.

var textView = (searchView.FindViewById(textViewId) as EditText);

Теперь, получив экземпляр SearchView 'EditText, мы можем установить textView мы можем установить все типы свойств, такие как SetBackgroundColor, SetHintTextColor, чтобы назвать несколько.

Таким образом, ваш код для изменения HintText (Заполнитель) будет выглядеть следующим образом

var textView = (searchView.FindViewById(textViewId) as EditText);
textView.SetTextSize(12);

Примечание: Когда мы меняем TextSize Размер подсказки, а также меняемся.

0 голосов
/ 30 ноября 2018

Первое, что нужно понять, это то, что размер экрана ваших пользователей будет зависеть от используемого ими устройства.Установка абсолютного размера шрифта значительно усложняет его экспоненциально.

HIG от Apple для SearchBar делает его рекомендации короткими и простыми и поможет вам с пользовательским интерфейсом, который будет полезен для вашего приложения (дажеесли он нацелен только на Android).В вашем примере вы хотели бы отобразить текст Please search for a product vendor or name.Это согласно каждому руководству по пользовательскому интерфейсу инструкция .Заполнителем поисковой панели должен быть подсказка , например Поиск , Продукт , Поставщик , Имя продукта или поставщика (список можно продолжить).

Текст, который у вас есть, должен появиться в виде метки над строкой поиска, чтобы пользователь знал, что это инструкция, которой он должен следовать.Затем в строке поиска вы увидите короткий заполнитель для панели поиска (примеры выше).Фактически, вы можете улучшить интерфейс, добавив инструкцию в метку, но в качестве заполнителя укажите пример строки поиска (пример: Apple iPhone ), чтобы у пользователя был пример того, что написать.

В качестве альтернативы, вы можете убрать «пожалуйста, введите ...» и просто указать в строке поиска в качестве Название продукта / поставщика .Пользователь по-прежнему будет знать, что искать по названию продукта или поставщика.

Выполнение вышеизложенного позволит избежать создания ненужных сложных пользовательских средств визуализации.

...