2015-12-09 4 views
0

Я пытаюсь создать макет с главным образом головой, телом и нижним колонтитулом. ViewPager Я использую это заполнение пространства за содержанием нижнего колонтитула. Как я могу заставить это не делать этого, и обрезать в начале содержимого нижнего колонтитула?android view layout. make view fill space from views

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="com.janedoe.anothertabexample.MainActivity" 
    tools:showIn="@layout/activity_main"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:background="?attr/colorPrimary" 
     android:elevation="6dp" 
     android:minHeight="?attr/actionBarSize" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/toolbar" 
     android:background="?attr/colorPrimary" 
     android:elevation="6dp" 
     android:minHeight="?attr/actionBarSize" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent" 
     android:layout_below="@id/tabLayout"/> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingBottom="5dp"> 

     <TextView 
      android:id="@+id/time" 
      android:layout_width="100dp" 
      android:layout_height="55dp" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentLeft="true" 
      android:gravity="center" 
      android:text="00:00:00" 
      android:textAlignment="center" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <TextView 
      android:id="@+id/mileage" 
      android:layout_width="100dp" 
      android:layout_height="55dp" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:gravity="center" 
      android:text="0.0 mi" 
      android:textAlignment="center" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <Button 
      android:layout_width="80dp" 
      android:layout_height="55dp" 
      android:layout_alignParentBottom="true" 
      android:layout_marginLeft="10dp" 
      android:layout_toRightOf="@id/time" 
      android:text="Start" /> 

     <Button 
      android:layout_width="80dp" 
      android:layout_height="55dp" 
      android:layout_alignParentBottom="true" 
      android:layout_marginRight="10dp" 
      android:layout_toLeftOf="@id/mileage" 
      android:text="Stop" /> 
    </RelativeLayout> 

</RelativeLayout> 

Я не хочу, чтобы цвет (который является только содержание), чтобы запустить мимо Buttons и TextViews на дне. Я пробовал метод layout_gravity, а также установил viewpager на layout_above и layout_blow, но ни один из них не работает. Как я могу это достичь? enter image description here

+0

дать некоторый цвет фона к вашему RelativeLayout. – dex

ответ

1

Вы просматриваете пейджер, который будет использовать все свободное пространство.

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@id/tabLayout"/> 

Я хотел бы попробовать переключиться на LinearLayout и использовать «андроид: layout_weight» свойство, чтобы заставить ViewPager только использовать доступное пространство.

+0

О, я думаю, я понял это. Когда я ранее пытался использовать 'layout_weight', я прочитал, чтобы установить' ViewPager' в 1, а остальное - на 0. Я установил 'RelativeLayout' в 3 и' ViewPager' равным 1, и теперь все выглядит великолепно! Я просто не экспериментировал. – Dustin

+1

Планы Android немного привыкают к :) продолжайте практиковать, и они станут естественными для вас! – fergdev

0

Ваш RelativeLayout должен иметь android: layout_alignParentBottom = "true".

<RelativeLayout android:id="@+id/relativeFooter" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:paddingBottom="5dp"> 

Удалить андроид: layout_alignParentBottom = "true" из всего его дочернего элемента.

и ваш ViewPager должен выглядеть, как показано ниже

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:layout_above="@+id/relativeFooter" 
    android:layout_below="@id/tabLayout"/> 

Наконец весь макет должен быть, как показано ниже:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

<android.support.v7.widget.Toolbar 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:background="?attr/colorPrimary" 
    android:elevation="6dp" 
    android:minHeight="?attr/actionBarSize" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

<android.support.design.widget.TabLayout 
    android:id="@+id/tabLayout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/toolbar" 
    android:background="?attr/colorPrimary" 
    android:elevation="6dp" 
    android:minHeight="?attr/actionBarSize" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" /> 

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent" 
    android:layout_above="@+id/relativeFooter" 
    android:layout_below="@id/tabLayout"/> 

<RelativeLayout android:id="@+id/relativeFooter" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:paddingBottom="5dp"> 

    <TextView 
     android:id="@+id/time" 
     android:layout_width="100dp" 
     android:layout_height="55dp" 
     android:layout_alignParentLeft="true" 
     android:gravity="center" 
     android:text="00:00:00" 
     android:textAlignment="center" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/mileage" 
     android:layout_width="100dp" 
     android:layout_height="55dp" 
     android:layout_alignParentRight="true" 
     android:gravity="center" 
     android:text="0.0 mi" 
     android:textAlignment="center" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <Button 
     android:layout_width="80dp" 
     android:layout_height="55dp" 
     android:layout_marginLeft="10dp" 
     android:layout_toRightOf="@id/time" 
     android:text="Start" /> 

    <Button 
     android:layout_width="80dp" 
     android:layout_height="55dp" 
     android:layout_marginRight="10dp" 
     android:layout_toLeftOf="@id/mileage" 
     android:text="Stop" /> 
</RelativeLayout>