6

अंदर दिखाई नहीं मैं के रूप में NestedScrollView अंदर एक RecylerView जगहRecylerview scrollview या nestedScrollview

नीचे

activity_service_menu.xml

<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

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

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="HELLO" /> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/rv" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="8dp" /> 
    </LinearLayout> 
</android.support.v4.widget.NestedScrollView> 

ServiceMenuActivity.java

public class ServiceMenuTActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_service_menu_t); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     RecyclerView rv = (RecyclerView) findViewById(R.id.rv); 
     rv.setLayoutManager(new LinearLayoutManager(getApplicationContext())); 
     rv.setHasFixedSize(true); 
     rv.setAdapter(new RvAdapter()); 
    } 

    private static class RvAdapter extends RecyclerView.Adapter<RvAdapter.RvHolder> { 

     @Override 
     public RvHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
      View serviceMenuItemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item_service_menu, parent, false); 
      return new RvHolder(serviceMenuItemView); 
     } 

     @Override 
     public void onBindViewHolder(RvHolder holder, int position) { 

     } 

     @Override 
     public int getItemCount() { 
      return 100; 
     } 

     public static class RvHolder extends RecyclerView.ViewHolder { 

      public RvHolder(View itemView) { 
       super(itemView); 
      } 
     } 
    } 

} 

मैं LinearLayout अंदर डाल दिया है चाहता हूँ scrollView और nestedScrollView। लेकिन पुनर्चक्रण दृश्य दिखाई नहीं दे रहा है। यदि मैं स्क्रॉलव्यू को फ्रेमलेआउट या किसी अन्य लेआउट के साथ प्रतिस्थापित करता हूं, तो RecyclerView दिखाई दे रहा है।

मैं नेस्टेडस्क्रॉल व्यू का उपयोग करना चाहता हूं और रीसाइक्लिंग व्यू स्क्रॉल होने पर कुल लेआउट स्क्रॉल करना चाहता हूं। दुर्भाग्य से रीसाइक्लिंग व्यू भी दिखाई नहीं दे रहा है।

+0

मदद तुम सच में '' 'LinearLayout' NestedScrollView' अंदर RecyclerView' के अभिभावक के रूप में की जरूरत है? –

+0

नहीं। जैसा कि स्क्रॉलव्यू केवल 1 बच्चा स्वीकार करता है, मैंने रैखिकलाइट को रैपर के रूप में रखा है। मुझे TextView के नीचे RecyclerView की आवश्यकता है और जब RecyclerView स्क्रॉल किया गया है, तो संपूर्ण दृश्य स्क्रॉल करना चाहिए। – Narendra

+0

क्या आप मूल रूप से वर्णन कर सकते हैं कि आप किस प्रकार के व्यवहार चाहते हैं? जैसे टूलबार को संकुचित करना या कुछ और। –

उत्तर

11

इस नमूना का पालन करें आपको यह पता चल जाएगा कि आपने गलती की है। मुख्य लाइन है: एंड्रॉइड: fillViewport = "true"।

<android.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fillViewport="true" 
     android:theme="@style/ThemeOverlay.AppCompat.Light" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:paddingTop="24dp"> 


     <android.support.v7.widget.CardView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:padding="16dp"> 


     <com.app.view.CustomRecyclerView 
      android:id="@+id/recycler_movie_suggestion" 
      android:layout_width="match_parent" 
      android:layout_height="170dp" 
      android:fillViewport="true" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    </android.support.v7.widget.CardView> 

    </LinearLayout> 

    </android.support.v4.widget.NestedScrollView> 
+2

आप सर अद्भुत हैं । ऐसा लगता है कि NestedScrollView पर fillViewport = "true" सेटिंग को चाल है। धन्यवाद! – Pkmmte

+0

यह एकमात्र ऐसा समाधान है जो मेरे लिए काम करता है, मैंने प्रत्येक से संबंधित प्रश्नों से कोशिश की लेकिन कोई भी काम नहीं किया। – UrielUVD

0

जब आप एक दूसरे को आप गर्म पानी में हैं अंदर दो scrollble तत्व का उपयोग करें! आपको रीसाइक्लिंग आइटम की ऊंचाई की गणना करना है और फिर पूरे रीसाइक्लिंग ऊंचाई को ढूंढना है। नीचे दिए गए लिंक को देखें, मैं पूरी तरह से इस समस्या को समझाता हूं।

Use RecyclerView insdie ScrollView with flexible recycler item height

मुझे आशा है कि यह आप