2016-03-09 2 views
0

Предположим, что у нас есть Dialog с RecyclerView.Стойкий верхний и нижний колонтитулы с RecyclerView

Таким образом, мы можем упростить расположение к этому:

<View 
     android:layout_width="match_parent" 
     android:layout_height="0.5dp" 
     android:background="@color/gray"/> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="0.5dp" 
     android:background="@color/gray"/> 

То, что я пытаюсь достичь является разделительными линиями выше и ниже точки зрения ресайклера.

Вот точно, как это должно выглядеть следующим образом:

Screenshot

Но, как я уже говорил это в диалоге, и размер содержания в RecyclerView меняется, поэтому он прекрасно работает, когда содержание невелико, но когда контент больше, чем максимальная высота диалога, последняя линия разделителя скрывается ниже содержимого просмотра ресайклеров.

Я пытался решить это, разместив все в относительной компоновке и выровняв нижний последний делитель, но проблема инвертируется, я имею в виду, что она работает, когда контент больше, чем максимальная высота диалога, но он не работает с меньшим контентом потому что между просмотром ресайзера и последним делителем существует пустое пространство.

Любая помощь будет оценена по достоинству.

+1

Вы пытались установить 'android: maxHeight' в' 'RecyclerView'? – vkislicins

+0

Нет, спасибо, я думаю, что сейчас работает. Вы можете добавить ответ, и я приму его. –

+0

Нет проблем, сделано. – vkislicins

ответ

0

Try Заменить диалоговый макет с следующим кодом XML.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:orientation="vertical" 
    android:layout_height="match_parent"> 
    <View 
     android:layout_width="match_parent" 
     android:layout_height="0.5dp" 
     android:background="@android:color/black"/> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:layout_width="match_parent" 
     android:layout_weight="1" 
     android:layout_height="match_parent"/> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="0.5dp" 
     android:background="@android:color/black"/> 

</LinearLayout> 

Надеюсь, это решит вашу проблему.

+0

Да, это решило мою проблему. Я не знаю почему, но он работает. Могли бы вы объяснить? –

+1

layout_weight определяет, сколько оставшегося пространства в макете будет выделено для представления. Здесь я дал значение как 1, что означает, что он займет оставшееся общее пространство. Пожалуйста, обратитесь к этому http://developer.android.com/intl/zh-cn/guide/topics/ui/layout/linear.html#Weight –

+0

Я думаю, что вы должны сделать свойство android: layout_height как wrap_content для просмотра Recycler, чтобы сделать представление выглядеть так, как ожидалось, когда контент мал. –

0

установка android:maxHeight к вашим RecyclerView

+0

Я допустил ошибку, на самом деле это не работает, когда содержимое слишком велико. –

+0

Возможно, чтобы высота 'RecyclerView' соответствовала родительскому? Таким образом, он должен занимать пространство между вашими линиями. – vkislicins

+0

Нет, это не помогло. –

Смежные вопросы