3

我想要我的RecyclerViewwrap_content。我不想在RecyclerView裏面滾動,它應該適應內在孩子的高度。我不希望我的父母ScrollView滾動我的活動的內容。RecyclerView高度wrap_content計算不正確

<FrameLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <!-- scrolls a little bit as RecyclerView goes slightly down beyond the screen --> 
    <ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 
     <!-- still scrolls inside --> 
     <android.support.v7.widget.RecyclerView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 

填充RecyclerView:

myAdapter = new MyAdapter(); 
layoutManager = new LinearLayoutManager(this); 
mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); 
mRecyclerView.setAdapter(myAdapter); 

我用RecyclerView圖書館,wrap_content問題應該是固定的:

dependencies { 
    compile 'com.android.support:recyclerview-v7:25.0.0' 
} 

enter image description here

基本上RecyclerView高度計算不能很好的工作我在這。 RecyclerView仍然有它自己的滾動和ScrollView滾動一點。如果我嘗試將一些RecyclerView高度設置爲1000dp,使其大於總計項目的高度,則可根據需要進行滾動,例如, RecyclerView不滾動,ScrollView使用所有RecyclerView項目滾動活動。

那麼我做錯了什麼? :)

+0

這是v25之前的工作? – natario

+0

請通過此鏈接,您可以找到解決方案[在此處輸入鏈接描述](http://stackoverflow.com/questions/30531091/how-to-disable-recyclerview-scrolling) –

+0

@natario afaik> v23中存在錯誤但它們已修復並且wrap_content應按預期工作。 – Andrei

回答

0

在這種情況下,您需要升級您的recyclerview gradle版本,如果您使用23.0.1使其成爲23.1.1或更高版本。在最新的gradle update中,谷歌已經提供了wrap_content屬性給recyclerview。

+1

我不使用23,我使用25.請閱讀問題。 – Andrei

+0

默認情況下,recyclerview帶有滾動功能。我從你的問題中瞭解到你的recyclerview不應該滾動,並且你需要用wrap_content選項調整recyclerview的大小。是嗎 ?最近我遇到了與recylerview中的wrap_content問題相同的情況,那次我升級了我的recyclerview gradle版本。如果你不滿意告訴我,我會建議更好的。 –

+0

嗯,是的,我不希望recyclerview滾動,但不是字面上,我希望它是所有它的孩子的高度(例如wrap_content),但問題是,由於某些原因,包裝內容不適合我。我從http獲取項目,將它們填充到適配器中,調用'notifyDataSetChanged()'。而且... RecyclerView不是完整的高度,我可以在裏面滾動。 Gradle和Support lib都是最新的。 – Andrei