場(chǎng)景:
項(xiàng)目中最外層使用ScrollView,里面嵌套了recycleview,recycleview中又嵌套了多個(gè)recycleview,導(dǎo)致部分recycleview顯示不出來(lái)
app界面的結(jié)構(gòu)圖:
<xml>
<LinearLayout>
*******
<RecycleView>
</RecycleView>
*****
<ScroolView>
<RecycleView
id="@+id/recycle">
</RecycleView>
</ScroolView>
*******
</LinearLayout>
</xml>
其中在**id為recycle**中又有多個(gè)Recycleview。
此時(shí),作為父RecycleView并不能把子RecycleView完全顯示出來(lái),所以我們需要自定義一個(gè)RecycleView用來(lái)把子RecycleView完全顯示出來(lái):
下面是自定義的RecycleView
/**
* 最大化的RecyclerView,嵌套于ScrollView之中使用
*/
public class MaxRecyclerView extends RecyclerView {
public MaxRecyclerView(android.content.Context context, android.util.AttributeSet attrs){
super(context, attrs);
}
public MaxRecyclerView(android.content.Context context){
super(context);
}
/**
* 設(shè)置不滾動(dòng)
*/
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec){
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
這樣就解決了部分手機(jī)不顯示的情況,例如公司里面的努比亞手機(jī)。