2013-06-15 8 views
14

पर मार्जिन के लिए स्क्रॉल नहीं करता मैं एक साधारण लेआउट इस प्रकार है:scrollview नीचे

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="#D23456" > 

    <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dp" 
    android:background="#FFFFFF" > 

     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="800dp" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 

</ScrollView> 

scrollview की पृष्ठभूमि गुलाबी है और रैखिक लेआउट के अंदर 800dp की ऊंचाई के साथ एंड्रॉयड आइकन छवि है (जो स्क्रीन पर फिट नहीं है)। जो मैं देखने की उम्मीद कर रहा हूं वह यह है कि छविदृश्य प्रत्येक पक्ष (शीर्ष, नीचे, बाएं, दाएं) में 10 डीपी के मार्जिन के साथ गुलाबी की पृष्ठभूमि में तैरता है .पर जब मैं नीचे स्क्रॉल करता हूं, तो स्क्रॉलव्यू स्क्रॉल नहीं करता है मार्जिन, तो स्क्रॉल के नीचे छविदृश्य गुलाबी मार्जिन नहीं है।

मैं इसे कैसे रोक सकता हूं? इससे उपयोगकर्ता को लगता है कि पृष्ठ अभी तक समाप्त नहीं हुआ है और उसे और अधिक स्क्रॉल करना चाहता है।

उत्तर

44

बाद में मुझे पता चला कि, इसी तरह की स्थिति का उत्तर निम्नलिखित थ्रेड https://stackoverflow.com/a/16885601/1474471 @olefevre द्वारा पहले ही दिया जा चुका है।

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#D23456" 
    android:padding="10dp" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#FFFFFF" > 

     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="800dp" 
      android:src="@drawable/ic_launcher" /> 
    </LinearLayout> 
</LinearLayout> 

</ScrollView> 
+1

बस एक एफवाईआई, इसे 'लीनियरलाउट' नहीं होना चाहिए। मैं 'रिलेटिव लयआउट 'का उपयोग कर रहा हूं। – theblang

+0

यह समाधान है ... यह एक आकर्षण की तरह काम किया ..! @Mehmet Katircioglu – TheFlash

+1

जैसा कि @ मट्टब्लैंग ने उल्लेख किया है, प्रदर्शन के लिए भारी रैखिक और सापेक्ष लेआउट के बजाय फ़्रेमलाउट का उपयोग करना बेहतर है। – TheIT

0

पर android:fillViewport="true" का उपयोग कर सकते हैं।

उदाहरण this thread में उदाहरण।

+0

मुझे इस संपत्ति से अवगत है, लेकिन इस मामले में काम नहीं करता है (स्वयं को आजमाएं)। हम कुछ याद कर रहे हैं। –

+2

मेरे लिए काम नहीं किया। – theblang

6

समाधान @Mehmet Katircioglu द्वारा पोस्ट की अच्छी तरह से काम करता है, लेकिन आप को हल कर सकते हैं:

एक अतिरिक्त LinearLayout कि एक गद्दी के साथ वर्तमान LinearLayout चारों ओर से घेरे जोड़ना और भीतरी LinearLayout के लेआउट मार्जिन को हटाने समस्या हल समस्या एंड्रॉइड को बदलने में समस्या: layout_margin से एंड्रॉइड: पैडिंग, बिना किसी अतिरिक्त दृश्य के। इस तरह:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#D23456" 
     android:padding="10dp" > 

     <!-- Your content (ImageView, buttons...) --> 
    <LinearLayout/> 
संबंधित मुद्दे