2010-11-04 3 views
1

Я пытаюсь создать действие, которое имеет флажок вверху, кнопку внизу, и кучу других виджета, прокручивающихся между ними. Концептуально это
LinearLayout
CheckBox
ScrollView
LinearLayout
[материал]
LinearLayout конец
ScrollView конец
Кнопка
LinearLayout конец
scrollview внутри linearlayout force buttons offscreen

Когда он делает я флажок вверху, прокручивающийся материал под ним, но кнопка, выведенная из экрана (я предполагаю) ниже ScrollView. Единственный способ, которым я могу заставить Button быть видимым, - это жестко закодировать высоту ScrollView, который, конечно, работает только на одном экране. Я пробовал все комбинации силы тяжести и layout_weight. Я могу думать безрезультатно. Использую ли я правильную комбинацию представлений? Кто-нибудь смог заставить это работать?

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

Спасибо,

--Eric

ответ

0

Я использовал это в 2.2, не уверен, доступны ли теги layout_above и layout_below в 1.5 (если это то, что вы используете). Разместите три основных элемента: заголовок, нижний колонтитул и центральное содержимое (в данном случае - список), в котором вы хотите заполнить оставшуюся область.

Вы можете заменить Listview на scrollView, если хотите, или любой компонент в этом отношении.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent"> 
    <Button 
     android:id="@+id/header" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Top Button"/> 
    <Button 
     android:id="@+id/footer" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:text="Button"/> 

    <ListView 
     android:id="@android:id/center" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_below="@id/header" 
     android:layout_above="@id/footer"/> 
    </RelativeLayout> 

Обратите внимание на порядок ваших элементов. Не уверен, что он имеет значение, но элемент центра определен последним.

3

У меня была та же проблема в последнее время, и я добавил:

<ScrollView 
    ... 
    android:layout_weight="1" > 

, что решить мою проблему.