【发布时间】:2012-01-26 23:28:22
【问题描述】:
我在我的 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>
有趣的是,如果我在包含 tabhost 的 mainActivity 的 onResume 方法中使用下面的代码,一旦 toast 消失,视图就会刷新,并且顶部的空间会再次被我的应用程序占用。显然,这并不能很好地解决问题,但可以帮助某人了解正在发生的事情。
@Override
protected void onResume() {
super.onResume();
Toast.makeText(this, "Welcome Back", Toast.LENGTH_LONG).show();
}
【问题讨论】:
-
我也有同样的问题。你找到解决方案了吗?有人有解决办法吗?
-
“使用带有 listView.setAdapter 的列表活动恢复活动”是什么意思?
-
嗨,伊娜。我必须承认。经过“可用性顾问”的猛烈抨击后,我意识到我永远不应该隐藏标题栏,因为用户有权查看他们的信号、电池、通知等。如果它是一个绝对的修道院,没有多大帮助。道歉。但是,如果您找到答案,知道会很有趣。
-
a.ch.回答你的问题。如果我在显示带有列表视图(使用 setAdapter 填充)的 Activity 时离开应用程序,那么如果我返回应用程序(恢复活动),则不会出现问题。欢呼
标签: android android-tabhost titlebar