android - प्रोग्रामेटिक रूप से NestedScrollView के शीर्ष पर स्क्रॉल करें




android-layout android-nestedscrollview (8)

क्या पैरेंट के लिए स्क्रॉल इवेंट को ट्रिगर करके NestedScrollView के शीर्ष पर प्रोग्रामेटिकली स्क्रॉल करने का एक NestedScrollView है? smoothScrollTo(x, y) स्क्रॉल इवेंट्स को NestedScrollingParent में नहीं NestedScrollingParent


आप आसानी से NestedScrollView स्तर पर स्क्रॉल नकली कर सकते हैं। आप मूल रूप से कोऑर्डिनेटर लयआउट को बताते हैं कि आपने टूलबार की ऊंचाई तक स्क्रॉल किया है।

    NestedScrollView nestedScrollView = (NestedScrollView) getActivity().findViewById(R.id.your_nested_scroll_view);

    int toolbarHeight = getActivity().findViewById(R.id.toolbar).getHeight();

    nestedScrollView.startNestedScroll(ViewCompat.SCROLL_AXIS_VERTICAL);
    nestedScrollView.dispatchNestedPreScroll(0, toolbarHeight, null, null);
    nestedScrollView.dispatchNestedScroll(0, 0, 0, 0, new int[]{0, -toolbarHeight});
    nestedScrollView.scrollTo(0, nestedScrollView.getBottom());

जब मुझे RecyclerView के साथ उपयोग किया गया तो मुझे NestedScrollView के साथ समस्या थी। इस कोड ने मेरे लिए काम किया: nestedScrollView !!। GetParent ()। RequestChildFocus (nestedScrollView, nestedScrollView);

    val recyclerViewSearch = activity?.findViewById<RecyclerView>(R.id.recycler)
    recyclerViewSearch.setAdapter(setAdapterSearch())

    val nestedScrollView = activity?.findViewById<NestedScrollView>(R.id.bottom_sheet_Search)
    nestedScrollView!!.getParent().requestChildFocus(nestedScrollView, nestedScrollView);

मेरे लिए कुछ भी काम नहीं किया, और मुझे नहीं पता कि यह क्यों काम किया, लेकिन यहां मेरा समाधान और समस्या है।

नेस्टेड स्क्रॉल दृश्य में पुनर्नवीनीकरण दृश्य जोड़ते समय, उस गतिविधि के लिए स्क्रीन पर पुनरावर्तन दृश्य दिखाई देता है। सभी तरह से ऊपर स्क्रॉल करने के लिए, मुझे इसका उपयोग करना पड़ा:

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.details_recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setItemAnimator(new DefaultItemAnimator());
ProductDescriptionAdapter adapter = new ProductDescriptionAdapter(this);
adapter.setData(mProduct.getDetails());
recyclerView.setAdapter(adapter);
NestedScrollView scrollView = (NestedScrollView) findViewById(R.id.scroll);
scrollView.getParent().requestChildFocus(scrollView, scrollView);

मेरे लिए दो बार .worked लाइन जोड़ें

nestedScrollView.fullScroll(View.FOCUS_UP);
nestedScrollView.fullScroll(View.FOCUS_UP);

मैंने उपरोक्त सभी प्रतिक्रियाओं की कोशिश की, काम करने के लिए कुछ भी नहीं था, लेकिन मुझे केवल पोस्टडेलिड की आवश्यकता थी।

    scrollview.postDelayed(new Runnable() {
        @Override
        public void run() {
            listener.setAppBarExpanded(false, true); //appbar.setExpanded(expanded, animated);
            scrollview.fullScroll(View.FOCUS_DOWN);
        }
    }, 400);

शीर्ष पर स्क्रॉल करने के बजाय View.scollTo (int x, int y) का उपयोग करें।

findViewById({your NestedScrollView resource id}).scrollTo(0, 0);

आप इसे स्क्रॉल के लिए उपयोग कर सकते हैं।

nestedScrollView.fullScroll(View.FOCUS_UP);
nestedScrollView.smoothScrollTo(0,0);

या सामान्य स्क्रॉल के लिए

nestedScrollView.fullScroll(View.FOCUS_UP);
nestedScrollView.scrollTo(0,0);

NestedScrollView.scrollTo(0, 0);




android-nestedscrollview