2011-12-23 16 views
5

Tôi đang sử dụng Máy chủ tab trong Ứng dụng Android của mình. Tôi đã ẩn thanh tiêu đề.Thanh tiêu đề Android để lại khoảng trống khi ứng dụng được tiếp tục

Khi tôi rời khỏi ứng dụng và tiếp tục ứng dụng, tôi có một số hành vi lạ.

Nếu tôi tiếp tục lại một tab bằng cách sử dụng hoạt động danh sách với listView.setAdapter, thanh tiêu đề bị ẩn và khoảng trống cần thiết sẽ được Ứng dụng tiêu thụ. Tuy nhiên, nếu tôi tiếp tục với bất kỳ tab nào không có listView.setAdapter, thanh tiêu đề bị ẩn, nhưng không gian được sử dụng bởi nó bị bỏ lại phía sau.

Điều này sẽ đẩy các tab của tôi (được đặt ở cuối màn hình) ra khỏi màn hình. Không gian lại được ứng dụng của tôi tiêu thụ một lần nữa nếu tôi sau đó chuyển sang bất kỳ tab nào khác.

Tôi đã cố gắng vô hiệu hóa hầu hết các Chế độ xem rõ ràng trong Ứng dụng của tôi mà không cần và thành công. Dưới đây là tab_activity xml của tôi. cảm ơn nhiều

<?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> 

Đây là Manifest

<?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> 

Điều thú vị là, nếu tôi sử dụng đoạn mã sau trong phương thức onResume của MainActivity tôi mà giữ tabhost, một khi bánh mì nướng sẽ biến mất, quan điểm được làm mới và không gian ở trên cùng được ứng dụng của tôi chiếm lại. Rõ ràng, đây không phải là một sửa chữa, nhưng có thể giúp ai đó hiểu những gì đang xảy ra.

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

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

Tôi có cùng một vấn đề. Bạn đã tìm thấy một giải pháp? Có ai là một giải pháp? – Inna

+0

Bạn có ý gì khi "tiếp tục hoạt động bằng cách sử dụng hoạt động danh sách với listView.setAdapter"? –

+0

Hi Inna. Tôi phải thừa nhận. Sau khi một tai tốt bashing từ một "tư vấn khả năng sử dụng" tôi nhận ra rằng tôi không bao giờ nên ẩn thanh tiêu đề, như người dùng có quyền xem tín hiệu, pin của họ, thông báo e.t.c. Không có nhiều giúp đỡ nếu nó là một linh mục tuyệt đối. Xin lỗi. Tuy nhiên, nếu bạn tìm thấy một câu trả lời, nó sẽ là thú vị để biết. –

Trả lời

0

tôi sẽ cố gắng để tự gọi requestLayout() và/hoặc requestWindowFeature(Window.FEATURE_NO_TITLE) trong tôi onResume() ... hơn nữa, cố gắng nhìn thấy khi nào là onMeasure() phương pháp kêu gọi nhìn của bạn. Đây chỉ là ra khỏi đỉnh đầu của tôi;) hy vọng nó sẽ giúp. Chúc mừng!

+1

bạn không thể gọi requestWindowFeature (Window.FEATURE_NO_TITLE) trênResume: \ – Necronet

+0

Điều đó sẽ kết thúc bạn với lỗi biên dịch. – Behnam

0

Lời cầu nguyện đặt chủ đề hoạt động của thanh tab chính là android:theme="@android:style/Theme.NoTitleBar.Fullscreen"