2010-11-06 19 views
25

मेरी गतिविधि का लेआउट नीचे दिखाया गया है।एंड्रॉइड - सॉफ्ट कीबोर्ड स्क्रीन से बाहर मेरी गतिविधि का लेआउट धक्का देता है

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

    <FrameLayout android:id="@+id/title_bar" 
     android:layout_width="fill_parent" 
     android:layout_height="25dip" 
     android:background="@drawable/bg_title" /> 

    <LinearLayout android:id="@+id/main" 
     android:width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1"> 
     <ListView android:id="@+id/android:list" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" /> 
     <TextView android:id="@+id/android:empty" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" /> 
     </FrameLayout> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="50dip" > 
     <EditText android:id="@+id/query" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="Enter some search terms" 
     android:singleLine="true" 
     android:layout_weight="1" /> 
     <Button android:id="@+id/btn_hide" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/btn_hide" 
     android:layout_marginLeft="6dip" /> 
    </LinearLayout> 
</LinearLayout> 

तो, खोज बॉक्स स्क्रीन के नीचे तय किया गया है।

लेकिन, जब उपयोगकर्ता संपादन टेक्स्ट पर क्लिक करता है, तो सॉफ्ट कीबोर्ड दिखाता है और खोज बॉक्स को छोड़कर स्क्रीन के लेआउट को धक्का देता है।

मैं अभी एंड्रॉइड के साथ शुरू कर रहा हूं, तो क्या मैं यहां कुछ भी गलत कर रहा हूं ??

उत्तर

51

कोशिश जोड़ने प्रकट में अपनी गतिविधि के लिए निम्नलिखित:

android:windowSoftInputMode="adjustPan" 
+6

धन्यवाद। यह वह विशेषता थी जिसे मैं ढूंढ रहा था। लेकिन, जैसा कि यह मूल्य है, मुझे इसे आवश्यक बनाने के लिए "समायोजन" का उपयोग करना था। – venkatagiri

+1

हाय, मुझे भी एक ही समस्या है। लेकिन मैं "adjustResize" का उपयोग नहीं कर सकता। क्योंकि मेरे पास नीचे टैबबार है। अगर मैं आकार बदलना टैबबार का उपयोग सॉफ्ट सॉफ्टपैड से ऊपर धकेल दिया जाएगा। मैं ऐसा नहीं करना चाहता हूं। इसलिए यदि कोई समाधान कर रहा है तो कृपया मेरी मदद करें। – Raj

5

@Raj आप Activity आप कहीं भी हों पर

android:windowSoftInputMode="adjustPan"

जोड़ने के लिए एक टैब्ड आवेदन आप के साथ काम कर रहे हैं, तो टैब जोड़ना, यह शायद आपकी लॉन्चर गतिविधि होगी।

"adjustResize"

गतिविधि का:

यहाँ मेरी कोड

<activity 
    android:label="@string/app_name" 
    android:name=".MainActivity" android:windowSoftInputMode="adjustPan"> 
    <intent-filter > 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 

13

android:windowSoftInputMode="adjustPan" और android:windowSoftInputMode="adjustResize" के बीच का अंतर उन है कि रुचि रखते हैं, के लिए से एक टुकड़ा है नरम कीबो के लिए जगह बनाने के लिए खिड़की का आकार बदल दिया गया है स्क्रीन पर ard।

"adjustPan"

गतिविधि के विंडो की सामग्री स्वचालित रूप से आलोचना कर रहे हैं ताकि मौजूदा फोकस कुंजीपटल द्वारा अवरुद्ध कभी नहीं किया गया है। ऐसा इसलिए है कि उपयोगकर्ता देख सकता है कि वे क्या टाइप कर रहे हैं। यह आम तौर पर आकार बदलने से कम वांछनीय है, क्योंकि उपयोगकर्ता को खिड़की के अस्पष्ट हिस्सों से मिलने और बातचीत करने के लिए सॉफ्ट कीबोर्ड को बंद करने की आवश्यकता हो सकती है।

Android Documentation

Cited link

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