/ / एंड्रॉइड - प्रति व्यूअर रीसाइक्लर्विव आधार पर एपबार स्क्रॉलिंग को सक्रिय करें - एंड्रॉइड, एंड्रॉइड-व्यूपेजर, एंड्रॉइड-रीसाइक्लर्विव, एंड्रॉइड-समन्वयकेटरआउट

एंड्रॉइड - प्रति व्यूअर रीसाइक्लर्विव आधार पर एपबार स्क्रॉलिंग को सक्रिय करें - एंड्रॉइड, एंड्रॉइड-व्यूपाजर, एंड्रॉइड-रीसाइक्लर्विव, एंड्रॉइड-समन्वयकेटरआउट

मेरे पास एक व्यूपार्जर है जिसमें दो टैब हैं जिनमें रीसाइक्लर्विव है। मैं समर्थन पुस्तकालयों का उपयोग कर रहा हूं 22.2.0 (AppCompat, Recycler view ...)। मेरा व्यूअर एक्सएमएल प्रारंभ में है:

<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent" />

मैं ऐपबार को सक्रिय / निष्क्रिय करना चाहता हूंसंपूर्ण व्यूपर आधार के बजाय प्रति टैब / रीसाइक्लर्विव आधार पर स्क्रॉल करना, यानी, एक टैब / रीसाइक्लर्विव ऐपबार स्क्रॉलिंग करेगा और अन्य टैब / रीसाइक्लिंगव्यू जीता "टी।

यह मुद्दा यह है कि जब मैं हटा देता हूं

app:layout_behavior="@string/appbar_scrolling_view_behavior"

व्यूपार्जर से एक डिफ़ॉल्ट लेआउट_बिवियर व्यूपैज़र पर लागू होता है जो अभी भी टैब / रीसाइक्लिंग व्यू पर ऐपबार स्क्रॉल को सक्रिय करता है।

मेरी रणनीति दर्शक में एपबार स्क्रॉलिंग को निष्क्रिय करना है, शायद ऐसा कुछ:

   <android.support.v4.view.ViewPager
android:id="@+id/viewPager"
app:layout_behavior="@string/appbar_desactivated_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent" />

और इसे केवल मेरे पहले टैब / रीसाइक्लिंगव्यू पर सक्रिय करें। ऐशे ही :

<android.support.v7.widget.RecyclerView
...
android:id="@+id/playlist1_rv"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
</android.support.v7.widget.RecyclerView>

लेकिन मुझे "@ string / appbar_desactivated_behavior" के लिए कक्षा की आवश्यकता है। क्या यह अस्तित्व में है? नहीं, इसे कैसे लिखना है? या आप एक और रणनीति के बारे में सोचते हैं? अग्रिम में धन्यवाद।

उत्तर:

जवाब के लिए 0 № 1

यदि आप एक का उपयोग कर रहे हैं ViewPager, appbar_scrolling_view_behavior को सेट करने की आवश्यकता है ViewPager उचित लेआउट के लिए।

आपको बस इतना करना है कि नेस्टेड स्क्रॉलिंग को बंद कर दें RecyclerView कि आप ऐप बार को स्क्रॉल नहीं करना चाहते हैं:

        recyclerview.setNestedScrollingEnabled(false);

ध्यान दें कि आपको स्थिति के साथ समस्या हो सकती हैऔर आपको रीसाइक्लर्विव के नीचे एक एपबार आकार का मार्जिन डालना पड़ सकता है। और यदि आपका उपयोगकर्ता अन्य रीसाइक्लर्विव के साथ ऐपबार को स्क्रॉल करता है तो इस रीसाइक्लिंग व्यू पर स्वाइप करता है, पृष्ठ के नीचे एक जगह होगी।