Перейти к содержанию
Fire Monkey от А до Я

Рекомендуемые сообщения

Долго бился со следующим, есть три типа устройств: 1. где отсутствует NavBar физически, 2. где он есть и всегда включен, 3. где он есть, но его можно выключить в настройках. В результате добился нормальной работы окраски NavBar на всех типах. Немного изменил код, приведенный Равилем из примера Update2

function hasNavbar(out navBarHeight: Integer): boolean;
// uses Androidapi.JNI.Util,
{$IFDEF ANDROID}
var
  Window: JWindowExt;
  realSize: JPoint;
  screenSize: JPoint;
  metrics: JDisplayMetrics;
  difference, resourceID: Integer;
{$ENDIF}
begin
  Result := false;
  navBarHeight := 0;
{$IFDEF ANDROID}
  metrics := TJDisplayMetrics.Create;
  realSize := TJPoint.Create;
  screenSize := TJPoint.Create;

  Window := GetWindowExt;
  Window.getWindowManager.getDefaultDisplay.getRealMetrics(metrics);
  realSize.x := metrics.widthPixels;
  realSize.y := metrics.heightPixels;
  Window.getWindowManager.getDefaultDisplay.getSize(screenSize);
  if realSize.y <> screenSize.y then
  begin
    difference := realSize.y - screenSize.y;
    resourceID := TAndroidHelper.Activity.getResources.getIdentifier(StringToJString('navigation_bar_height'),
      StringToJString('dimen'), StringToJString('android'));
    if resourceID > 0 then
      navBarHeight := Trunc(TAndroidHelper.Activity.getResources.getDimensionPixelSize(resourceID));
    if navBarHeight > 0 then
      if difference < navBarHeight  then
       begin
        navBarHeight := 0;
        Result := false;
       end
      else
       Result := true;
  end
  else
   begin
    navBarHeight := 0;
    Result := false;
   end;
{$ENDIF}
end;

 

Ссылка на комментарий
  • 10 месяцев спустя...

А зачем это всё? В style.xml

<item name="android:windowTranslucentStatus">false</item>

В OnCreate

TAndroidHelper.Activity.getWindow.setFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_LAYOUT_NO_LIMITS,    	TJWindowManager_LayoutParams.JavaClass.FLAG_LAYOUT_NO_LIMITS);
TAndroidHelper.Activity.getWindow.getDecorView.setFitsSystemWindows(false);
TAndroidHelper.Activity.getWindow.setStatusBarColor($00000000);

 

Ссылка на комментарий
  • 4 месяца спустя...
  • 1 год спустя...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...