2016-01-16 70 views
0

我實現recyclerview內滾動視圖使用RecyclerView內滾動型與固定回收站項目高度

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

      <android.support.v7.widget.RecyclerView 
       android:id="@+id/rv1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:divider="@android:color/transparent" 
       android:dividerHeight="0dp" 
       android:listSelector="@android:color/transparent" /> 
     </LinearLayout> 

集recyclerview到固定的高度這樣

mRecyclerView_other.setHasFixedSize(true); 
    RecyclerView.LayoutManager layoutManager_other = new LinearLayoutManager(context); 
    mRecyclerView_other.setLayoutManager(layoutManager_other); 
    int adapterItemSize = 64; 
    int viewHeight = adapterItemSize * list.size(); 
    mRecyclerView_other.getLayoutParams().height = viewHeight; 
    mRecyclerView_other.setAdapter(adapter_other); 

爲持有人高度將被固定在64dp我已經把adapterItemSize = 64,但我面臨的問題是從列表中只有兩行是可見的。

回答

0

我想你還沒有setLayoutParams。當您更改視圖的佈局參數,可以你需要設置它,比如,你這是怎麼設置它爲您recyclerview:

LinearLayout.LayoutParams layoutParams = mRecyclerView_other.getLayoutParams(); 
layoutParams.width = 64; 
layoutParams.height = 64; 
mRecyclerView_other.setLayoutParams(layoutParams); 

您還設置你的寬度和高度,使用整數值,而不是拉動它們從dimens.xml - 試試這個:

在你dimens.xml文件:

<dimen name="test">64dp</dimen> 

然後將解壓後是這樣的int值:

int valueInPixels = (int) getResources().getDimension(R.dimen.test) 
+0

沒有爲我工作,因爲我需要設置適配器的高度recyclerview項目 –

+0

您正在嘗試設置recyclerview layoutParams,以便recyclerview等於您的recyclerview中所有項目的總和的高度。它應該爲你工作,我會很快改變上面的代碼,以適應你的情況 - 請再試一次。 – Simon

+0

我試過這個,但仍然面臨同樣的問題 –