Вопрос

Поэтому я пытаюсь создать экран, который имеет обзор List, и мне нужно иметь возможность пропустить еще один пользовательский горизонтальный список, прямо на нижнем крае экрана. Когда пользователь прокручивается на вертикальном списке, горизонтальный станет невидимым и появляется, когда прокрутка останавливается. Я полагал, что Framelayout будет моим лучшим выбором для перекрывающихся видов. Но я не могу сделать эту работу. Горизонтальный список, кажется, занимает все пространство экрана. Любые идеи? Это даже правильный подход? Я хочу иметь что -то похожее на фиксированный Div в HTML.
Вот мой XML:

Обновление-1: использовал RELATIVELAYOUT, как предполагалось, но все же не стоит. Horizontallistview все еще, кажется, занимает весь экран. Я использую HorizintallistView от здесь

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android">

    <ListView
        android:id="@+id/messages" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:layout_marginTop="5dip" />


    <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >

        <test.ui.app.HorizontalListView 
                android:id="@+id/folders"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" 
                android:background="#FFFFFF" />

    </RelativeLayout>



</RelativeLayout>
Это было полезно?

Решение

Я заставил его работать, установив высоту внутренней относительной макета вместо использования «wrap_content».

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android">

    <ListView
        android:id="@+id/messages" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" />


    <RelativeLayout 
        android:layout_width="wrap_content" 
        android:layout_height="80dip"
        android:layout_alignParentBottom="true" >

        <test.ui.app.HorizontalListView 
                android:id="@+id/folders"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" 
                android:background="#FFFFFF" />

    </RelativeLayout>



</RelativeLayout>

Другие советы

Вы не можете отрегулировать представления. Framelayout. Так что вам будет лучше пойти на RELATIVELAYOUT. Анкет Или вы можете поместить свои списки в RelativeLayout или LinearLayout, а затем вы можете настроить.

Надеюсь, что это поможет вам. :)

Как сказал другой ответчик, вы можете использовать RELATIVELAYOUT:

  • Установите Android: Layout_AlignParentleft | справа | Вверх
  • Установите Android: Layout_AlignParentleft | справа | внизу = "true" для горизонтального представления списка (и высота к "wrap_content" или фиксированный размер)

Или, если вы хотите придерживаться Framelayout (возможно, по причинам производительности ...), вы можете добавить огромный Android: Layout_margintop к горизонтальному представлению списка. Но это решение уроднее, поскольку вам нужно установить точные значения. Например, если весь экран составляет высоту 320 дрп, и вы хотите, чтобы вид горизонтального списка был высотой 80 др, вам необходимо установить верхнюю маржу на 240dp. Однако, если вы запустите это на экране с различным соотношением сторон, горизонтальное представление списка будет уродливым.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top