Tabhost скрывается, когда приложение работает на весь экран

#java #android #android-tabhost

#java #Android #android-tabhost

Вопрос:

У меня проблема с TabHost и полноэкранным приложением на Android. Я загружаю этот пример: https://github.com/AdilSoomro/Iphone-Tab-in-Android и я добавляю эти строки в onCreate:

  requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
  

но когда я пытаюсь войти на свой мобильный телефон HTC, вкладки скрыты. Этого не произойдет, если приложение не работает на весь экран.
Вы можете видеть это на этом скриншоте.

Снимок экрана Tabhost

Внезапно, когда я нажимаю на другую вкладку, все вкладки поднимаются. Проблема в том, что это происходит только на HTC mobile, я тестировал на: HTC G1, HTC Hero, HTC Desire и HTC Desire HD, с другой стороны, на Samsung Galaxy 3 и S II у меня нет этой ошибки.

Знаете ли вы, в чем проблема?Я ничего не смог найти по этому поводу.

Спасибо.

Ответ №1:

Вместо того, чтобы пытаться удалить заголовок в коде, вы пробовали удалить заголовок в Манифесте?

 <activity android:name="TabActivityName"
      android:label="@string/name_of_acitivity"
      android:theme="@android:style/Theme.NoTitleBar">
  

Для получения дополнительной информации проверьте: http://developer.android.com/guide/topics/ui/themes.html#PlatformStyles

Комментарии:

1. Да, я сделал это с тем же результатом. Наконец, я не буду устанавливать свое приложение на весь экран, я думаю, что лучший способ — не закрывать строку состояния на Android.

Ответ №2:

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

Самое простое решение — сначала скрыть панель вкладок: tabHost.getTabWidget().setVisibility(View.GONE); . Затем включите его примерно через 600 мсек: tabHost.getTabWidget().setVisibility(View.VISIBLE); . Это не самое лучшее, если у вас растянутое фоновое изображение, потому что высота содержимого изменится, и изображение перейдет к новому размеру.

Другим решением является создание заставки перед запуском вашего приложения. Вам нужно сделать этот экран полноэкранным. Вот ссылка, как сделать заставку: http://www.codeproject.com/Articles/113831/An-Advanced-Splash-Screen-for-Android-App Я сделал полноэкранную заставку, и мне нужно было поставить finish() следующую startActivity(intent) строку. Это решило для меня вышеупомянутую проблему.