2017-01-16 5 views
0

У меня есть Activity с ExpandableListView и скрытым Fragment под ним. Когда вы нажимаете на дочерний элемент ListView, фрагмент становится видимым и появляется снизу с гладкой анимацией. Проблема в том, что когда появляется фрагмент, он перекрывает часть списка, поэтому я не вижу элементов внизу. Чтобы исправить это, я предполагаю, что я мог бы динамически корректировать высоту listView, когда фрагмент всплывает, но я не знаю, как это сделать. Любые идеи будут оценены.Как отрегулировать высоту спискаView к фрагменту под ним

Вот пример того, как он выглядит перед показом фрагмента:

enter image description here

И это то, что происходит после того, как он (и я не могу прокрутить вниз больше):

enter image description here

Вот эта компоновка:

<RelativeLayout xmlns: 
    android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/main_background" 
    android:orientation="vertical"> 

<ExpandableListView 
    android:id="@+id/listView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:choiceMode="singleChoice" 
    android:divider="@drawable/list_divider" 
    android:dividerHeight="1dp" 
    android:childDivider="@drawable/list_divider" 
    android:fontFamily="sans-serif-thin" 
    android:groupIndicator="@null" /> 

<FrameLayout 
    android:id="@+id/musicBarContainer" 
    android:layout_width="match_parent" 
    android:layout_height="150dp" 
    android:layout_alignParentBottom="true" 
    android:clickable="true" 
    android:fontFamily="sans-serif-thin" /> 
</RelativeLayout> 

ответ

0

Наконец-то нашли решение! Фокус в том, что вам просто нужно выровнять контейнер до нижней части родителя, а затем установить высоту listView в match_parent и поместить его над контейнером. Поскольку listView занимает всю возможную высоту, но все же должен быть выше conatiner, он автоматически будет уменьшаться, когда фрагмент появится в контейнере.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@drawable/main_background" 
android:orientation="vertical"> 

    <FrameLayout 
     android:id="@+id/musicBarContainer" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:clickable="true" 
     android:fontFamily="sans-serif-thin" /> 

    <ExpandableListView 
     android:id="@+id/listView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@id/musicBarContainer" 
     android:childDivider="@drawable/list_divider" 
     android:choiceMode="singleChoice" 
     android:divider="@drawable/list_divider" 
     android:dividerHeight="1dp" 
     android:fontFamily="sans-serif-thin" 
     android:groupIndicator="@null" /> 
</RelativeLayout>