2013-06-18 6 views
2

Я сделал простой макет xml-файла. Я решал свои проблемы по частям. Я использую scrolview, linearlayout и tableview. У меня есть верхний бар, и он заблокирован наверху. он никогда не двигается. в середине, у меня есть scrollview, и мне нужно поместить мой последний linearlayout внизу как нижний колонтитул, и я не хочу, чтобы он исчез, если пользователь прокручивается вниз. Я хочу, чтобы его заперли.Исправить linearlayout внизу как нижний колонтитул в android

вот мой код

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical"> 

    <TableLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

     <TableRow 
     android:background="@drawable/gradient" 
     android:gravity="center"> 

      ....... 

     </TableRow> 

    </TableLayout> 

    <ScrollView 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:id="@+id/sw_layout" 
android:orientation="vertical"> 

     <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

    <TableLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:background="#EEEEEE" > 

     <TableRow 
     android:id="@+id/tableRowDate" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

      .......... 

      </TableRow> 

     </TableLayout> 

     /*****************************************/ 
     /* I want this to be footer at the bottom*/ 
     /*****************************************/ 
     <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <Button 
      android:id="@+id/btn_date" 
      android:layout_height="35dp" 
      android:padding="5dp" 
      android:drawableLeft="@drawable/calendar" 
      android:text="Tarih" /> 

      <Button 
      android:id="@+id/btn_converter" 
      android:layout_height="35dp" 
      android:padding="5dp" 
      android:drawableLeft="@drawable/calendar" 
      android:text="Hesap" /> 
      </LinearLayout> 
     /*****************************************/ 
     /* I want this to be footer at the bottom*/ 
     /*****************************************/ 

     </LinearLayout> 
    </ScrollView> 
</LinearLayout> 

Как я могу achive иметь подвал заперта на дне?

+0

вы можете сделать еще один xml-файл с linearlayout и включить его в свой xml-код – abhi

+0

, но как я могу это сделать? –

+3

используйте relativeLayout и в макете нижнего колонтитула, добавьте тег: 'android: layout_alignParentBottom =" true "'; и для вашего 'ScrollView', вы должны поместить его выше нижнего колонтитула Layout (' android: layout_above = "@ + id/idOfYourFooterLayout" ' – Houcine

ответ

14

Вы должны использовать RelativeLayout и в макете колонтитула, добавьте тег: android:layout_alignParentBottom="true"; и для ScrollView, вы должны поместить его над макетом колонтитула (android:layout_above="@+id/idOfYourFooterLayout")

Попробуйте это:

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

    <ScrollView android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/sw_layout" 
     android:layout_above="@+id/footer" 
     android:orientation="vertical"> 
//your UI... 
    </ScrollView> 

    <LinearLayout 
     android:id="@+id/footer" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:orientation="vertical" > 

     <Button 
      android:id="@+id/btn_date" 
      android:layout_height="35dp" 
      android:padding="5dp" 
      android:drawableLeft="@drawable/calendar" 
      android:text="Tarih" /> 

     <Button 
      android:id="@+id/btn_converter" 
      android:layout_height="35dp" 
      android:padding="5dp" 
      android:drawableLeft="@drawable/calendar" 
      android:text="Hesap" /> 
    </LinearLayout> 
</RelativeLayout> 
+0

Что делать, если нижний колонтитул должен быть внутри ScrollView? –

+1

@FranciscoCorralesMorales: просто используйте RelativeLayout в качестве корневого макета внутри вашего ScrollView и добавьте 'android: layout_alignParentBottom =" true "' к виду, которое вы хотите, чтобы он был нижним колонтитулом вашего пользовательского интерфейса. – Houcine

0

использовать один XML как this- >>

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 


</LinearLayout> 

и включить его в качестве

LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

    ... 

    <!-- Overridden attributes never work. Nor do attributes like 
     the red background, which is specified here. --> 
    <include 
     android:id="@+id/buttons_override" 
     android:background="#ff0000" 
     android:layout_width="fill_parent" 
     layout="@layout/buttons"/> 

</LinearLayout> 
2

Вы можете установить layout_height="0dp" вашего заголовка, колонтитула и ScrollView и определить layout_weight. Просто играйте со значениями, пока не узнаете, какая из них лучше всего работает. Полученные высоты верхнего и нижнего колонтитула будут динамически изменяться с помощью экрана.

Значения 1, 5, 1 означают, что первый элемент занимает 1/7, второй 5/7 и последний 1/7 от доступной высоты в родительском LinearLayout.

Попробуйте

<!-- HEADER --> 
<TableLayout 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" > 

<!-- BODY --> 
<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:id="@+id/sw_layout" 
    android:orientation="vertical" 
    android:layout_weight="5"> 

<!-- FOOTER --> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:orientation="vertical" 
    android:layout_weight="1" > 
0

Использование родительского макета как RelativeLayout и добавить это свойство android:layout_alignParentBottom="true" к раскладке колонтитула, и поставить LinearLayout (макет сноска) из Scrollview. как этот

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

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" //// add this property 
     android:orientation="vertical" > 

     <Button 
      android:id="@+id/btn_date" 
      android:layout_height="35dp" 
      android:padding="5dp" 
      android:drawableLeft="@drawable/calendar" 
      android:text="Tarih" /> 

     <Button 
      android:id="@+id/btn_converter" 
      android:layout_height="35dp" 
      android:padding="5dp" 
      android:drawableLeft="@drawable/calendar" 
      android:text="Hesap" /> 
    </LinearLayout> 
0

Используйте Относительное расположение, как ваш родительский компоновщик затем добавьте три дочерних представления следующим образом

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" > 
    <View android:id="@+id/top_view" 
    android:alignParentTop="true"> // Your view that as to be in Top 
    </View> 

    <ScrollView android:layout_below ="@id/top_view" > //scroll view in middle below topview 
    </ScrollView> 

    <View android:alignParentBotton="true"> //Your expected view in bottom 
    </View> 

</RelativeLayout> 
Смежные вопросы