2011-12-23 14 views
5

मैं अपने एंड्रॉइड ऐप में एक टैब होस्ट का उपयोग कर रहा हूं। मेरे पास टाइटलबार छिपा हुआ है।एंड्रॉइड टाइटल बार जब एप्लिकेशन को फिर से शुरू किया जाता है तो

जब मैं ऐप छोड़ देता हूं और फिर से शुरू करता हूं, तो मेरे पास कुछ अजीब व्यवहार होता है।

यदि मैं listView.setAdapter के साथ एक सूची गतिविधि का उपयोग कर एक टैब पर फिर से शुरू करता हूं, तो टाइटल बार छुपाया जाता है और जिस स्थान पर इसे उठाया जाता है वह ऐप द्वारा उपभोग किया जाता है। हालांकि, अगर मैं सूची View.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> 

है अगर मैं अपने MainActivity का onResume विधि है जो, tabhost रखती है एक बार टोस्ट गायब हो जाता है में नीचे दिए गए कोड का उपयोग करें, दृश्य ताजा है और शीर्ष पर स्थित स्थान मेरे ऐप द्वारा फिर से लिया जाता है। जाहिर है, यह एक फिक्स का अधिक नहीं है, लेकिन किसी को यह समझने में मदद कर सकता है कि क्या हो रहा है।

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

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

मैं बिल्कुल वैसा ही समस्या है। क्या आपको कोई समाधान मिला? क्या कोई समाधान है? – Inna

+0

"View.setAdapter के साथ सूची गतिविधि का उपयोग करके गतिविधि को फिर से शुरू करने "का क्या मतलब है? –

+0

हाय इना। मुझे स्वीकार करना है। "उपयोगिता परामर्शदाता" से अच्छे कान के बाद मुझे एहसास हुआ कि मुझे कभी भी टाइटलबार को छिपाना नहीं चाहिए, क्योंकि उपयोगकर्ता को उनके सिग्नल, बैटरी, नोटिफिकेशन e.t.c. को देखने का अधिकार है। अगर यह एक पूर्ण priory है तो बहुत मदद नहीं है। क्षमा याचना। हालांकि, अगर आपको कोई जवाब मिल जाए, तो यह जानना दिलचस्प होगा। –

उत्तर

0

मैं मैन्युअल में requestLayout() और/या requestWindowFeature(Window.FEATURE_NO_TITLE) फोन करने की कोशिश करेगा मेरी onResume() ... इसके अलावा, जब onMeasure() विधि अपने दृश्य के लिए कहा जाता है को देखने का प्रयास करें। यह सिर्फ मेरे सिर के शीर्ष से बाहर है;) उम्मीद है कि यह मदद करता है। चीयर्स!

+1

आप अनुरोध WindowFeature (Window.FEATURE_NO_TITLE) पर कॉल नहीं कर सकते हैं रेज़्यूम: \ – Necronet

+0

जो आपको संकलन-समय त्रुटि के साथ समाप्त कर देगा। – Behnam

0

दलीलों मुख्य टैब बार गतिविधि विषय सेट के रूप में android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

संबंधित मुद्दे