Равиль Зарипов (ZuBy)

пару вопросов по работе ActionSheet

В теме 12 сообщений

Пока писал вопросы, один решил

 

1) Создание динамически элементов получилось так:

var
  fgItem: TfgActionCollectionItem; // uses FGX.ActionSheet.Types
begin
  fgItem := fgActions.Actions.Add as TfgActionCollectionItem;
  fgItem.Caption := 'Контакты';
  fgItem.OnClick := OnClickProc;
end;

2) Как можно поменять шрифт? (я использую FontAwesome)

post-59-0-39224100-1452180612_thumb.png

 

3) Как отловить закрытие?

 

P.S. В качестве идеи/бреда, для десктопов можно было использовать TPopupMenu как основу

Изменено пользователем ZuBy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  1. В следующей версии я как раз планировал добавить событие OnClose и OnShow
  2. Подумаю на счет Windows и OSX реализации
  3. В текущей реализации, только при помощи правок исходников. Обсуждение тут

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  1. В следующей версии я как раз планировал добавить событие OnClose и OnShow
  2. Подумаю на счет Windows и OSX реализации
  3. В текущей реализации, только при помощи правок исходников. Обсуждение тут

долго ли ждать следующую версию?

на счёт шрифта, спасибо. завтра попробую

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  1. В следующей версии я как раз планировал добавить событие OnClose и OnShow

Ярослав, прошу попутно зацепить ImageList...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело в том, что в iOS и в андроиде в стандартном варианте нету картинок. Но вообще мне кажется, что для андроида ActionSheet должен быть в виде попапа... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

  1. В следующей версии я как раз планировал добавить событие OnClose и OnShow

Ярослав, прошу попутно зацепить ImageList...

 

Как сказали уже картинки нельзя прикрутить, нативно они не поддерживаются.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Помогите добрым советом

 

Вот что получается

unit FGX.ActionSheet.Android;

дописываем метод Show

procedure TAndroidActionSheetService.Show(const ATitle: string; Actions: TfgActionsCollections;
  const UseUIGuidline: Boolean = True);
var
  DialogBuilder: JAlertDialog_Builder;
  dialog: JAlertDialog;
  Items: TJavaObjectArray<JCharSequence>;

  // ................
  TextView: JTextView; // uses Androidapi.JNI.Widget
  Typeface: JTypeface;
  FontFile: string;
  // ................
begin
  AssertIsNotNil(Actions);

  FActions := Actions;

  { Create Alert Dialog }
  if TOSVersion.Major <= 2 then
    DialogBuilder := TJAlertDialog_Builder.JavaClass.init(TAndroidHelper.Context)
  else
    DialogBuilder := TJAlertDialog_Builder.JavaClass.init(TAndroidHelper.Context, GetNativeTheme);

  // ................
  { Пытаемся загрузить шрифт }
  FontFile := TPath.Combine(TPath.GetDocumentsPath, 'FontAwesome.ttf');
  if FileExists(FontFile) then // выдает, что найден
  begin
    Typeface := TJTypeface.JavaClass.createFromFile(StringToJString(FontFile)); // пытаемся загрузить шрифт
    TextView := TJTextView.JavaClass.init(TAndroidHelper.Context); // создаем TextView
    TextView.setText(StrToJCharSequence(' ' + widechar($F085) + ' options')); // выводим посмотреть что получилось
    TextView.setTypeface(Typeface); // эту строчку забыл добавить!!!
    DialogBuilder.setView(TextView); // присваиваем нашему диалогу TextView
  end;
  // ................

  { Forming  Action List }
  Items := ItemsToJavaArray;
  if not ATitle.IsEmpty then
    DialogBuilder.setTitle(StrToJCharSequence(ATitle));
  DialogBuilder.setItems(Items, FListener);
  DialogBuilder.setCancelable(True);

  CallInUIThread(
    procedure
    begin
      dialog := DialogBuilder.Create;
      dialog.Show;
    end);
end;

в итоге получается вот такое

post-59-0-95853800-1452333007_thumb.png

 

UPDATE: получилось присвоить TextView шрифт, забыл присвоить Typeface

post-59-0-63096000-1452336108_thumb.png

 

Что я делаю не так?

Как теперь добавленным item'ам применить новый Typeface?

Изменено пользователем ZuBy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У AlertDialog итемы реализованы в котроле ListVIew. Поэтому нужно просто получить ListVIew через http://developer.android.com/intl/ru/reference/android/app/AlertDialog.html#getListView() и присвоить ему шрифт

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще есть вариант просто сделать свой стиль диалогового окна и подсунуть его с нужным шрифтом. Тогда будет проще, но придется самому стиль сделать. Так же исходник стиля можно взять с исходников Android SDK

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У AlertDialog итемы реализованы в котроле ListVIew. Поэтому нужно просто получить ListVIew через http://developer.android.com/intl/ru/reference/android/app/AlertDialog.html#getListView() и присвоить ему шрифт

уже копался тут, не понял куда именно вставить setTypeface...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще есть вариант просто сделать свой стиль диалогового окна и подсунуть его с нужным шрифтом. Тогда будет проще, но придется самому стиль сделать. Так же исходник стиля можно взять с исходников Android SDK

в этом придётся долго разбираться...

 

кодом ведь почти получилось, только нужно понять куда в JListView присвоить свой Typeface

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От PavelS
      Здравствуйте! Начал изучать FireMonkey  и столкнулся с тем, что TBitmap не поддерживает размер изображения больше 8132, кажется. Т.е. большие размеры рисунка он грузит, но за счёт потери качества, размер пиксела растёт, а размер рисунка по оси всё равно не превышает 8132. В то же время в простом дельфи можно грузить и работать с гораздо большими размерами, например, один из файлов имеет размер 61216 х 1486 точек. Подскажите пожалуйста, есть ли возможность работать с большими файлами в FireMоnkey и как это можно организовать? Программа создаётся для работы только в Windows.
    • От SIARHEI RAHOUSKI
      Создал проект там куча компонентов. Но разворачивании формы на весь экран компоненты размер не меняют:
      Прочитал про свойства align Но как только я выставлю Group box например left другим right все сбивается в кучу и поправить это не могу. 
      Как настроить align ?

    • От SIARHEI RAHOUSKI
      Как сделать форму с компонентами под все разрешения?

    • От SIARHEI RAHOUSKI
      Как сделать мозаику (drag/drop) ? Получается есть 2 прямоугольника (которые надо перетаскивать)  и есть ещё 2 прямоугольника (которые должны принимать) и ещё есть кнопка проверки. При нажатии определяет правильно ли разместили прямоугольники.
    • От SIARHEI RAHOUSKI
      Как задать градиентную заливку TChart? именно самих столбцов. 

    • От SIARHEI RAHOUSKI
      При нажатии на Label действия не происходят
      procedure TForm2.Label11Click(Sender: TObject);
      begin
      Button1.visible:= true;
      {label7.Font.Style:= [];
      label8.Font.Style := [];
      label9.Font.Style := [];
      //label11.Font.Style := [fsbold];
      label10.Font.Style := [];  }

        GroupBox12.Visible := false;
        GroupBox13.Visible := false;
        GroupBox14.Visible := false;
        GroupBox15.Visible := true;
        GroupBox16.Visible := false;
      end;
    • От Edward Tarasov
      поставил этот патч 
      https://cc.embarcadero.com/item/30805
      Версия PAserver на mac стала - 10.1.1.37, test connection отвечает success, но при компиляции выдаеться ошибка - [PAClient Error] Error: E0014 Connection refused. Platform Assistant Server version mismatch - expecting version '10.0.1.23'. 
      10.0.1.23 - это старая версия PA... откатиться нельзя ибо не пашет, тоесть этот патч исправляет старую проблему - но добавляет эту... суть в том, как я понял после 4-х часовго гугления, что надо исправить PAclient, у которого версия почему то осталась старая... кто знает как с этим быть?
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу