2015-11-22 5 views
17

को स्वाइप करते हैं, तो मैं को RecyclerView के साथ बनाना चाहता हूं जो स्लाइड करता है और इसे स्लाइड करते समय अधिक आइटम दिखाता है।स्लाइड रीसाइक्लर जब आप इसे स्वाइप करते हैं, या रीसाइक्लर्विव्यू को नीचे स्लाइड करते हैं, तो आप

यहां एक उदाहरण है जिसके बारे में मैं बात कर रहा हूं।

प्रारंभिक निर्माण:

enter image description here

उपयोगकर्ता ऊपर स्वाइप RecyclerView स्लाइड करने के लिए, और अधिक आइटम दिखाता है:

enter image description here

कुछ मुद्दों कर रहे हैं, मैं चाहूँगा CoordinatorLayout का उपयोग न करने के लिए, और मैं इसे आइटम कहां सेट करना चाहता हूं RecyclerView में EditText के शीर्ष पर सीधे खड़ा है।

यह मैं उपयोग कर रहा हूँ लेआउट कोड है:

<android.support.design.widget.CoordinatorLayout 
android:id="@+id/coordinatorLayout" 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:visibility="visible"> 

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appBarLayout" 
    android:layout_width="match_parent" 
    android:layout_height="400dp" 
    android:background="@android:color/transparent" 
    android:fitsSystemWindows="true" 
    android:orientation="vertical"> 

    <android.support.design.widget.CollapsingToolbarLayout 
     android:id="@+id/collapsingToolbar" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@android:color/transparent" 
     android:fitsSystemWindows="true" 
     app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

     <View 
      android:id="@+id/emptyView" 
      android:layout_width="match_parent" 
      android:layout_height="400dp" 
      android:background="@android:color/transparent" 
      app:layout_collapseMode="parallax"/> 

    </android.support.design.widget.CollapsingToolbarLayout> 

</android.support.design.widget.AppBarLayout> 

<android.support.v7.widget.RecyclerView 
    android:id="@+id/recyclerView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

     <EditText 
      android:id="@+id/editText" 
      android:paddingLeft="16dp" 
      android:inputType="textAutoCorrect" 
      android:layout_centerVertical="true" 
      android:background="@android:color/transparent" 
      android:layout_width="match_parent" 
      android:layout_height="56dp"/> 

    </RelativeLayout> 

</RelativeLayout> 

और मैं कुछ इस तरह मिलती है:

enter image description here

यह निश्चित रूप से स्केलेबल नहीं है, और खाली दृश्य होगा लगातार मापा जाना चाहिए।

+1

वहाँ एक कारण है कि आप CoordinateLayout कार्यान्वयन नहीं चाहते हैं? – Ari

उत्तर

11

मैं अन्य समाधान के सभी एक कस्टम TouchListener का उपयोग करके इस हल बहुत ही बुनियादी और एक विशिष्ट तक ही सीमित थे का उपयोग करें और बॉक्सिंग उपयोग-मामले।

BounceTouchListener

मैं मिल निम्नलिखित परिणाम:

तरह से मैं ऐसा किया एक नया TouchListener इस पुस्तकालय के आधार पर लागू करने के लिए था

enter image description here

+0

धन्यवाद @AndyRoid BounceTouchListener के लिए –

4

उपयोग RecyclerView पंक्तियों के 2 प्रकार के साथ: रंग ग्रे (विभक्त बिना)

  1. रिक्त पंक्ति/पंक्तियों सामग्री के साथ
  2. पंक्तियों के रूप में आपके पास पहले से

RecyclerView match_parent करना होगा पूरे टुकड़े

तो आपको RecyclerView के शीर्ष पर "रिक्त" क्षेत्र का सही प्रभाव मिलेगा।

enter image description here

+0

यह एक समाधान होगा जो मैं अपने सिर के शीर्ष पर जाउंगा, और मैंने इस पर विचार किया लेकिन कुछ महत्वपूर्ण मुद्दे हैं, आप पूरे 'रीसाइक्लर व्यू' को स्लाइड कर सकते हैं, मैं इसे आइटमों के पीछे स्लाइड नहीं करना चाहता हूं। तो मैं मूल रूप से छवि 3 – AndyRoid

+0

@AndyRoid जैसे कुछ को रोकना चाहता हूं मुझे समझ में नहीं आया कि उस विकल्प के साथ आपकी समस्या क्या है? क्या आप इसे अधिक जानकारी के साथ समझा सकते हैं? – David

+0

आईओएस भूमि में आप अतिरिक्त सामग्री सेट कर सकते हैं तालिकादृश्य के ऊपर या नीचे की जांच करें, यह अतिरिक्त स्क्रॉलिंग क्षेत्र देता है। एंड्रॉइड में कुछ ऐसा ही है? मैं संपादन के ऊपर लाइव सेट करना चाहता हूं और फिर अतिरिक्त सामग्री देता हूं RecyclerView के नीचे इन्सेट करें ताकि आप कुंजीपटल के नीचे बस कुछ ही स्क्रॉल कर सकें। – AndyRoid

0

आप LinearLayoutManager

की setReverseLayout

आइटम ट्रावर्सल और लेआउट क्रम को उल्टा करने के लिए प्रयुक्त उपयोग कर सकते हैं। यह RTL विचारों के लिए लेआउट परिवर्तन में समान व्यवहार करता है। जब सत्य पर सेट किया जाता है, तो पहले आइटम यूआई के अंत में रखी जाती है, दूसरी वस्तु इसे पहले रखी जाती है। क्षैतिज लेआउट के लिए, यह लेआउट दिशा पर निर्भर करता है। को सत्य पर सेट करते समय, यदि रीसाइक्लर व्यू एलटीआर है, तो यह आरटीएल से लेआउट होगा, अगर रीसाइक्लिंग व्यू} आरटीएल है, तो यह एलटीआर से लेआउट होगा।आप setStackFromBottom (बुलियन) की ठीक उसी व्यवहार देख रहे हैं के लिए, setStackFromEnd (बूलियन)

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