2012-07-26 19 views
26

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

किसी कारण से, जब सॉफ्ट कीबोर्ड ऊपर होता है तो यह नीचे तक सभी तरह से स्क्रॉल करने में असमर्थ लगता है, जो मेरे बटनों में से एक को आधा में कटौती करता है।

यहां पदानुक्रम दर्शक का एक स्क्रीनशॉट है जिसका अर्थ है कि मेरा क्या मतलब है।

enter image description here

आप देख सकते हैं, इस प्रणाली को पता है कि व्यू कीबोर्ड अतीत जारी है, अभी तक scrollview (जो स्क्रीन के दृश्य भाग सही ढंग से भर जाता है) एकदम सही ढंग से नीचे स्क्रॉल करने के लिए जारी नहीं होंगे।

मेरे पास गतिविधि के लिए मैनिफेस्ट में android:windowSoftInputMode="adjustResize" है, और मैं इसे पैन पर स्विच नहीं कर सकता/सकती हूं।

किसी भी मदद की सराहना की जाती है।

संपादित करें: मैं इसे 1 से अधिक दृश्य में देख रहा हूं। यहाँ एक ही समस्या के साथ एक और देखने की एक्सएमएल है:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/background" > 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_margin="32dp" > 
     <EditText 
      android:id="@+id/reset_oldpass" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentRight="true" 
      android:ems="10" 
      android:singleLine="true" 
      android:hint="@string/current_password" 
      android:layout_marginTop="16dp" /> 
     <EditText 
      android:id="@+id/reset_pass1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentRight="true" 
      android:layout_below="@+id/reset_oldpass" 
      android:ems="10" 
      android:hint="@string/reset_new_pass" 
      android:inputType="textPassword" 
      android:layout_marginTop="16dp" /> 
     <EditText 
      android:id="@+id/reset_pass2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentRight="true" 
      android:layout_below="@+id/reset_pass1" 
      android:ems="10" 
      android:hint="@string/reset_confirm_pass" 
      android:inputType="textPassword" 
      android:layout_marginTop="16dp" /> 
     <TextView 
      android:id="@+id/reset_forgot_password" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentRight="true" 
      android:layout_below="@+id/reset_pass2" 
      android:layout_marginTop="16dp" 
      android:textColor="@color/Link" 
      android:textStyle="bold" 
      android:text="@string/Login_forgot_password" /> 
     <Button 
      android:id="@+id/reset_reset_password_button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/reset_forgot_password" 
      android:layout_centerHorizontal="true" 
      android:layout_marginTop="16dp" 
      android:layout_marginBottom="32dp" 
      android:text="@string/reset_change_pass" /> 
    </RelativeLayout> 
</ScrollView> 
+0

यह 'लीनियरलाउट' के साथ भी होता है। इस धागे को उपलब्ध कराने के लिए धन्यवाद! – avalancha

उत्तर

39

यह वास्तव में अजीब है, लेकिन यह RelativeLayout भीतर android:layout_margin="32dp" की वजह से हो रहा है। एक बार मैंने इसे स्क्रॉल करने के बाद स्क्रॉल ठीक से काम किया।

बेशक, इस वजह से मुझे अपने फॉर्म तत्वों में एक गुच्छा अधिक मार्जिन जोड़ना पड़ा, लेकिन कम से कम यह अब तय हो गया है।

+3

यह सच है। यदि स्क्रॉलव्यू के अंदर आपका लेआउट मार्जिन है तो आप नीचे तक सभी तरह से स्क्रॉल करने में सक्षम नहीं होंगे। मेरे मामले में मैं रूट लेआउट में मार्जिन डाल सकता था क्योंकि मेरे पास लाइनरलाइट था जिसमें एक स्क्रॉलव्यू और एक बटन था। – slott

+0

आपकी ऑटो-प्रतिक्रिया के लिए धन्यवाद, यह मुझे बहुत समय से बचाया! – Apollo

+0

स्क्रॉलव्यू पर पैडिंग प्रत्येक तत्व को मार्जिन करने की आवश्यकता को रोक देगा? – Gulfaran

13

मेरे पास एक ही समस्या थी और मैंने इसे रिलेवेटिवआउट में मार्जिन के बजाय स्क्रॉलव्यू में पैडिंग का उपयोग करके तय किया।

तो, RelativeLayout (स्क्रॉलव्यू के बच्चे) से android:layout_margin="32dp" हटाएं और स्क्रॉलव्यू में android:padding="32dp" जोड़ें।

+0

यह बच्चों के तत्वों में मार्जिन को जाने और विभाजित करने के मुकाबले अधिक उपयुक्त समाधान था। मार्जिन को उचित स्थान पर रखा जाना चाहिए; इसके चारों ओर लेआउट तत्व के बजाय स्क्रॉलव्यू स्वयं। –

+0

ने टिप्पणी या इस पोस्ट की तारीख को ध्यान में रखे बिना यह कहा है xD – Gulfaran

+0

यदि यह किसी और की मदद करता है, तो मैंने इस बग का भी सामना किया जब मैंने 'स्क्रॉलव्यू' पर पैडिंग लगाई। मेरे लिए काम करने वाली एकमात्र चीज 'स्क्रॉलव्यू' के बच्चे पर पैडिंग डाल रही थी। –

0

आप भी इस तरह निचला हाशिया नकल करने के लिए एक झूठी दृश्य सम्मिलित कर सकते हैं:

<View 
      android:layout_width="match_parent" 
      android:layout_height="20dp" 
      android:layout_below="@id/recompensaLabel" 
      android:layout_marginTop="0dp" 
      android:id="@+id/simulate_bottom_margin_view" 

      /> 

प्रभाव ही है, आप केवल अपने रिश्तेदार लेआउट में अंतिम तत्व नीचे डालने के लिए किया है।

0

मुझे बस एक ऐप के साथ यह समस्या थी और पता चला कि यह स्क्रॉलव्यू लेआउट_हेइट सामग्री को लपेटने के लिए सेट किया गया था। मुद्दा यह है कि यदि आपके पास स्क्रॉलव्यू की आवश्यकता के लिए पर्याप्त सामग्री है, तो आप सामग्री को लपेटना नहीं चाहते हैं क्योंकि स्क्रॉलव्यू के नीचे कुछ मनमानी राशि से स्क्रीन बंद है। मेरे पास इस से प्रभावित होने के लिए पर्याप्त डेटा नहीं था क्योंकि कीबोर्ड तक पॉप अप होने तक मुझे स्क्रॉलव्यू की आवश्यकता नहीं थी। इसकी प्रकृति से, ओपी एक ही स्थिति में था।

अब, कीबोर्ड पॉप अप होने के बाद, स्क्रॉलव्यू के निचले हिस्से को कीबोर्ड की ऊंचाई के समान राशि बढ़ा दी जाती है और कुंजीपटल के शीर्ष के नीचे एक ही मनमाने ढंग से राशि के नीचे समाप्त होती है जो कि नीचे के नीचे थी दृश्यमान स्क्रीन

आखिरकार, मेरा फिक्स स्क्रॉलव्यू के शीर्ष को मेरे टूलबार में बांधना था और फिर पेड़ में स्क्रॉलविय राइट-क्लिक करें और 'लंबवत केंद्र' चुनें (पैरेंट विकल्प में नहीं)। अब एक आकर्षण की तरह काम करता है। Layout_height स्वचालित रूप से 0 डीपी पर जाना चाहिए।

0

लॉलीपॉप और ऊपर में स्टेटस बार पारदर्शी बनाना मेरे लिए समस्या पैदा कर रहा था। ScrollView युक्त लेआउट के मूल दृश्य में

android:fitsSystemWindows="true"
सेट करना समस्या हल करें।

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