linearlayout не показывает всех детей - PullRequest
0 голосов
/ 09 января 2012

У меня есть проблема в этом макете, что: он не показывает дочерний элемент после listView и просмотр списка заполняет это зрелище; он прокручивает, но не показывает другого ребенка

Я пытался использовать ScrollView, но возникают проблемы с расширением списка

это код макета XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/select_bg"
android:orientation="vertical" >

<TextView
    android:id="@+id/Header"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/header_bg"
    android:gravity="center"
    android:paddingRight="50dip"
    android:paddingTop="5dip"
    android:text="@string/select"
    android:textColor="#60240a"
    android:textSize="18dip"
    android:textStyle="bold" >
</TextView>

<ListView
    android:id="@+id/listView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:cacheColorHint="@android:color/transparent"
    android:divider="@drawable/line_divider"
    android:dividerHeight="3dip"
    android:listSelector="@android:color/transparent" >
</ListView>

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="3dip"
    android:src="@drawable/line_divider" />

<ExpandableListView
    android:id="@+id/expandableList"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:cacheColorHint="@android:color/transparent"
    android:childDivider="@drawable/line_divider"
    android:divider="@drawable/line_divider"
    android:dividerHeight="2dip"
    android:listSelector="@android:color/transparent"
    android:textColor="#60240a" >
</ExpandableListView>
</LinearLayout>

Спасибо

Ответы [ 5 ]

1 голос
/ 09 января 2012

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

1 голос
/ 09 января 2012

Когда вы используете ListView в макете, вы должны добавить это свойство android:layout_weight для просмотра списка. Без установки этого свойства вы не можете получить все представления.

0 голосов
/ 09 января 2012

Вы задали высоту списка в виде wrap_content, чтобы он занимал все пространство на экране, поэтому вы задаете фиксированную высоту списка, и то же самое, что применяется к расширяемому списку, также дает фиксированную высоту.

Надеюсь, ты получишь все самое лучшее

0 голосов
/ 09 января 2012

Установить все layout_height - атрибуты от прямых потомков вашего корневого макета до fill_parent. Чем дать каждому из этих макетов атрибут layout_weight. Значение layout_weight является целым числом в зависимости от того, сколько места им было предоставлено в представлении. Например, два вида: один с весом 2 и один с весом 1: вес 1 в два раза больше веса 2. Просто поиграйте с атрибутом веса, чтобы узнать это сами.

0 голосов
/ 09 января 2012

Дайте первому ListView некоторую постоянную высоту.Как и

<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="300dip"
....
/>

LinearLayout не будет прокручиваться, когда его содержание увеличивается.И вы не можете использовать ScrollView в качестве родителя для ListView.

...