#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, вкладки скрыты. Этого не произойдет, если приложение не работает на весь экран.
Вы можете видеть это на этом скриншоте.
Внезапно, когда я нажимаю на другую вкладку, все вкладки поднимаются. Проблема в том, что это происходит только на 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)
строку. Это решило для меня вышеупомянутую проблему.