11

मैं एक नेस्डस्क्रॉल व्यू के साथ CollapsingToolbarLayout को कार्यान्वित करने की कोशिश कर रहा हूं और यह नीचे दिए गए नेस्टेडस्क्रॉल व्यू के भीतर टेक्स्ट व्यू प्रदर्शित कर रहा है और टूलबार को स्क्रॉल करने या स्क्रैप करने की अनुमति नहीं दे रहा है। मुझे यह एक RecyclerView के साथ काम करने के लिए मिला है लेकिन NestedScrollView नहीं। जब मैं app:layout_behavior="@string/appbar_scrolling_view_behavior हटाता हूं तो टूलबार ध्वस्त हो जाता है लेकिन NestedScrollView AppBarLayout से नीचे नहीं है। इसे ठीक करने के लिए कोई समाधान या सुझाव?CollapsingToolbarLayout और NestedScrollView काम नहीं कर रहे हैं

एक्सएमएल

<android.support.design.widget.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:fitsSystemWindows="true"> 

    <android.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:gravity="center" 
       android:text="Hello" 
       android:textColor="#000" 
       android:textSize="16sp"/> 
     </LinearLayout> 
    </android.support.v4.widget.NestedScrollView> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed"> 

      <ImageView 
       android:id="@+id/backdrop" 
       android:layout_width="match_parent" 
       android:layout_height="134dp" 
       android:background="@color/primary" 
       app:layout_collapseMode="parallax"/> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       app:layout_collapseMode="pin"/> 
     </android.support.design.widget.CollapsingToolbarLayout> 
    </android.support.design.widget.AppBarLayout> 
</android.support.design.widget.CoordinatorLayout> 

परिणाम

enter image description here

+0

'एंड्रॉइड' जोड़ें: फिटनेस सिस्टमविंडोज़ = "सत्य" कोऑर्डिनेटरलाइट और नेस्टेडस्क्रॉल व्यू में। अगला AppBarLayout के ऊपर नेस्टेडस्क्रॉलव्यू को ले जाएं। – Psypher

+0

@ ɥʇᴉɾuɐɹ आपने जो भी पूछा उससे मेरा उत्तर अपडेट किया। अभी भी एक ही परिणाम। –

+0

@ ɥʇᴉɾuɐɹ अगर आपके पास इसका एक सरल कामकाजी उदाहरण है, तो इसे पोस्ट करें और मैं इसका परीक्षण करूंगा। –

उत्तर

6

AppbarLayout में कुछ निश्चित ऊंचाई को बदलें। उदाहरण:

android:layout_height="300dp". 

मुख्य समस्या यह है कि नेस्टेड स्क्रॉल दृश्य में स्क्रॉल के कारण पर्याप्त दृश्य नहीं हैं। इसलिए लंबन प्रभाव काम नहीं करेगा।

Here is a working example that uses NestedScrollView and CollapsingToolbarLayout

0

मैं एक ही समस्या थी और उस के लिए एक तरह से त्वरित सुधार लिखा था। मान लें, जो आपके LinearLayout युक्त "हैलो" लेबल mContainer करने के लिए बाध्य किया जाता है और अपने ToolbarmToolbar के लिए बाध्य है तो आप इस का उपयोग कर सकते हैं:

private void fixNestedScrollViewScrolling() { 
    final int bottomMargin = getScreenHeight() - mContainer.getHeight() - mToolbar.getHeight(); 
    final FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(
      mContainer.getLayoutParams()); 
    layoutParams.setMargins(0, 0, 0, bottomMargin); 
    mContainer.setLayoutParams(layoutParams); 
} 

private int getScreenHeight() { 
    final Display display = getWindowManager().getDefaultDisplay(); 
    final Point size = new Point(); 
    display.getSize(size); 
    return size.y; 
} 

इस सुधार में विधि मेरी Activity की onCreate विधि में कहा जाता है:

@Override 
protected void onCreate(final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_single_post); 

    fixNestedScrollViewScrolling(); 

    // some other stuff here ... 
} 
संबंधित मुद्दे