2015-04-17 2 views
0

У меня очень длинный макет для дизайна, и у меня есть его дизайн и используется ScrollView, в основном это 1400dp длинный макет. Я использую это в своей деятельности. Я хочу реализовать фиксированный нижний колонтитул в своей деятельности, даже подумал прокрутил пользовательский интерфейс, который я хочу, чтобы нижний колонтитул был зафиксирован на экране.Добавление фиксированного нижнего колонтитула к длинному расположению 1400dp

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

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#ffffff" 
    android:orientation="vertical" 
    android:paddingBottom="8dp" > 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="1400dp" 
     android:columnCount="1" 
     android:orientation="vertical" > 

     ... 
    </RelativeLayout> 

</ScrollView> 

Я пытался добавить колонтитул (TextView) на дно, а затем он получает скрыть при прокрутке. Затем я попытался ограничить ScrollView, layout_height до 400dp и попытался, тогда он дает пустое место внизу, но он не позволяет ничего там добавлять. SO моя проблема в том, можно ли добавить нижний колонтитул исправления в макет андроида.

enter image description here

+0

Просто заверните свой ScrollView в LinearLayout и поместите нижний колонтитул внизу. – 323go

ответ

2

Оберните прокрутку в RelativeLayout.

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

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/footer" 
     android:background="#ffffff" 
     android:orientation="vertical"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="1400dp" 
      android:columnCount="1" 
      android:orientation="vertical"> 
     ... 
     </RelativeLayout> 
    </ScrollView> 

    <YourFooter 
     android:id="@+id/footer" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true"> 
    ...   
    </YourFooter> 
</RelativeLayout> 
+0

это отлично работает :) – modabeckham

0

Шаг № 1: Обертка ScrollView в вертикальном LinearLayout, высота которого и ширина оба устанавливаются в match_parent.

Шаг # 2: Установите высоту ScrollView на 0dip и установите вес 1.

Шаг № 3: Добавьте фиксированный нижний колонтитул после ScrollView в LinearLayout, установив высоту, которая имеет смысл (например, wrap_content).

Теперь нижнему колонтитулу будет предоставлено пространство в нижней части LinearLayout, а остальная часть пространства будет передана ScrollView.

+0

У меня есть ошибка, которая показана в моем обновленном вопросе (снимок экрана), почему? – modabeckham

+1

@modabeckham: Среди возможных других проблем вы не сделали вертикальную линию LinearLayout. Вы устанавливаете атрибут 'android: orientation =" vertical "' на 'ScrollView', а не' LinearLayout'. Это говорит о том, что подход RelativeLayout от другого ответа также работает. Как люди Perl любят говорить, «есть более чем один способ сделать это». :-) – CommonsWare

+0

да, конечно, спасибо за подробный ответ. Каждый день я изучаю новые вещи. Я очень ценю ваш ответ. Cheers – modabeckham

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