2016-11-22 12 views
6

में लंबवत स्क्रॉल को अक्षम करें, जब मैं स्क्रैप/टच इवेंट nestedscrollview (यह काम कर रहा है) में स्क्रॉल/टच इवेंट होता है, तो मैं केवल कोलाप्सिंग टूलबार लयआउट/ऐपबारलाउट पर लंबवत स्क्रॉल करना चाहता हूं, लेकिन यदि उपयोगकर्ता सीधे CollapsingToolbarLayout/AppBarLayout को स्क्रॉल करने का प्रयास करता है यह काम नहीं करना चाहिए। मुझे इसकी आवश्यकता है क्योंकि स्क्रॉल/टच इवेंट्स मेरे रीसाइक्लिंगव्यू स्क्रॉल इवेंट्स के साथ गड़बड़ कर रहे हैं।CollapsingToolbarLayout/AppBarLayout

मैं इस संरचना है:

CoordinatorLayout 

-- AppBarLayout 

---- CollapsingToolbarLayout (scrollflags: scroll, exitUntilCollapsed, snap) 

------ Toolbar (CollapseMode: pin) 

------ RecyclerView (Horizontal, CollapseMode: pin) 

----- /CollapsingToolbarLayout 

-- /AppBarLayout 

-- NestedScrollView (Behaviour: appbar_scrolling_view_behavior) 

-- /NestedScrollView 

/CoordinatorLayout 

मैं दोनों CollapsingToolbarLayout/AppBarLayout के लिए onTouch() और onInterceptTouchEvent() अधिभावी की कोशिश की लेकिन यह स्पर्श घटना/पुस्तक में अवरोध उत्पन्न कर रहता है।

उत्तर

13

ठीक है, मुझे इसके लिए समाधान मिला।

आपको ऐपबारलाउट व्यवहार में ऑनड्रैग() विधि को ओवरराइड करना होगा और यदि ऐपबारलाउट व्यू के शीर्ष पर स्पर्श होता है तो स्क्रॉल ट्रिगर नहीं किया जाएगा। यहाँ से

CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams(); 
AppBarLayout.Behavior behavior = (AppBarLayout.Behavior) params.getBehavior(); 
behavior.setDragCallback(new AppBarLayout.Behavior.DragCallback() { 
    @Override 
    public boolean canDrag(@NonNull AppBarLayout appBarLayout) { 
     return false; 
    } 
}); 

समाधान: How to disable scrolling of AppBarLayout in CoordinatorLayout?

आप एक अशक्त व्यवहार की वजह से NullPointerException में चलाने, तो आप एक पहले आवंटित करने चाहिए:

CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) mAppbar.getLayoutParams(); 
params.setBehavior(new AppBarLayout.Behavior()); 
+0

धन्यवाद। यह काम करता है लेकिन मुझे अभी भी अभिविन्यास परिवर्तन पर समस्याएं हैं। क्या यह कुछ आप भी देखते हैं? –

+0

धन्यवाद !!! 10000000 धन्यवाद !!!! यह वास्तव में काम करता है !!!!)))))) – maXp