Строка заголовка Android, оставляющая место при возобновлении работы приложения - PullRequest
5 голосов
/ 23 декабря 2011

Я использую Tab Host в моем приложении для Android.У меня есть скрытый титлебар.

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

Если я возвращаюсь к вкладке, используя действие списка со списком listView.setAdapter, строка заголовка скрывается изанимаемое им место используется приложением.Однако, если я возобновлю работу с любой вкладкой без listView.setAdapter, заголовок будет скрыт, но пространство, которое использовалось им, останется позади.

Это выдвигает мои вкладки (которые расположены внизуэкран) с экрана.Место снова будет использовано моим приложением, если я затем перейду на любую другую вкладку.

Я попытался сделать большинство очевидных представлений в моем приложении недействительными безуспешно.Ниже мой tab_activity xml.большое спасибо

 <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@android:id/tabhost" android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <LinearLayout android:orientation="vertical"
                android:layout_width="fill_parent" android:layout_height="fill_parent">
                <FrameLayout android:id="@android:id/tabcontent"
                    android:layout_width="fill_parent" android:layout_height="0dip"
                    android:layout_weight="1" />

                <TabWidget android:id="@android:id/tabs"
                    android:layout_width="fill_parent" android:layout_height="wrap_content"
                    android:layout_weight="0" />
            </LinearLayout>
        </TabHost>

    </LinearLayout>

Вот манифест

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.tar.projectx" android:versionCode="1"
    android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />

    <application android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
        <activity android:name=".Splash" android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" android:label="@string/app_name" android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="SearchActivity" android:label="SearchActivity" android:screenOrientation="portrait"></activity>
        <activity android:name="SearchListActivity" android:label="SearchListActivity" android:screenOrientation="portrait"></activity>
        <activity android:name="ContactActivity" android:label="ContactActivity" android:screenOrientation="portrait"></activity>
    </application>
</manifest>

Интересно, что если я использую приведенный ниже код в методе onResume моей функции mainActivity, которая удерживает tabhost после исчезновения тоста,представление обновляется, и пространство в верхней части снова занято моим приложением.Очевидно, что это не так уж и сложно, но может помочь кому-то понять, что происходит.

@Override
    protected void onResume() {
        super.onResume();

        Toast.makeText(this, "Welcome Back", Toast.LENGTH_LONG).show();
    } 

Ответы [ 2 ]

0 голосов
/ 17 марта 2012

Пожалуйста, установите главную тему активности панели вкладок как android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

0 голосов
/ 23 января 2012

Я бы попытался вручную вызвать requestLayout() и / или requestWindowFeature(Window.FEATURE_NO_TITLE) в моем onResume() ... более того, попробуйте посмотреть, когда вызывается метод onMeasure() для вашего просмотра. Это только из головы;) надеюсь, это поможет. Ура! * * 1005

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...