2017-01-07 6 views
1

У меня есть implementing a RecylerView, он должен обернуть содержимое, если оно содержит только высоту содержимого элемента меньше. Если увеличение элемента, как 250dp, оно должно быть установлено на максимальное значение heght(250dp) и иметь возможность прокрутки. Как для этого .Мои родительский макет - Relative layout.Как установить максимальную высоту RecyclerView?

Это Мой Компоновка файл

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.v7.widget.RecyclerView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/recycler_view" 
     android:layout_width="match_parent" 
     android:layout_height="250dp" 
     android:layout_alignParentBottom="true" 
     android:layout_gravity="bottom" /> 

</RelativeLayout> 

Screen Shot, если его только один item.This должен быть wrap_content.

Screen Shot if its only one item.This should be wrap_content.

+0

Использование 'ScrollView' в качестве исходного макета , – AlphaQ

+0

@AlphaQ 'ScrollView' Вместо' RelativeLayout' или текущего 'Relative layout' внутри' ScrollView' –

+3

Почему Google удаляет maxHeight, это просто неудобно. –

ответ

3

вы можете установить programetically высота RecylerView

если только один пункт ... wrap content

ViewGroup.LayoutParams params=recycler_view.getLayoutParams(); 
params.height= RecyclerView.LayoutParams.WRAP_CONTENT; 
recycler_view.setLayoutParams(params); 

еще

<dimen name="view_height">250dp</dimen> 

float height= getResources().getDimension(R.dimen.view_height); //get height 

ViewGroup.LayoutParams params_new=recycler_view.getLayoutParams(); 
params_new.height=height; 
recycler_view.setLayoutParams(params_new);