Дизайн макета Android - Как получить высоту экрана в xml (макеты) - PullRequest
4 голосов
/ 22 августа 2011

Мне нужно оформить экран. Я хочу разместить нижний колонтитул под списком.См. Здесь:

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout android:id="@+id/main"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="@drawable/wallpaper">

<!-- Header -->
<LinearLayout android:id="@+id/header"
    android:background="#0099CC"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent">

    <TextView android:id="@+id/routeCode"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Code"
        android:width="100dip"
        android:height="30dip"
        android:textColor="@color/black"
        android:gravity="center_horizontal"
    />
    <TextView android:id="@+id/routeName"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Name"
        android:width="150dip"
        android:height="30dip"
        android:textColor="@color/black"
        android:gravity="center_horizontal"
    />
    <TextView android:id="@+id/outlets"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Outlets"
        android:width="60dip"
        android:height="30dip"
        android:textColor="@color/black"
        android:gravity="center_horizontal"
    />
</LinearLayout>

<!-- List Divider -->
<View android:layout_width="fill_parent"
    android:layout_height="1dip"
    android:background="?android:attr/listDivider" />

    <!-- ListView (grid_items) -->
    <LinearLayout android:id="@+id/layout"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content" 
                                        android:layout_weight="1" >

        <ListView android:id="@android:id/list"
                  android:layout_height="405dp"
                  android:layout_width="fill_parent">
        </ListView>

        <TextView android:id="@id/android:empty"
                  android:layout_width="fill_parent" 
                  android:gravity="center_vertical"
                  android:layout_height="fill_parent" 
                  android:layout_marginTop="25dp" 
                  android:text="No Sales Routes Define By Admin" />
    </LinearLayout>

     <!-- Footer -->
    <RelativeLayout android:id="@+id/header"
        android:background="#000000"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent">

        <Button android:text="Exit" 
                android:id="@+id/button1" 
                android:background="#0099FF"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_marginLeft="8dp"
                android:onClick="onExitAction">
        </Button>

        <Button android:layout_width="wrap_content" 
                android:text="Next" 
                android:background="#0099FF"
                android:layout_height="wrap_content" 
                android:layout_marginRight="8dp"
                android:id="@+id/button2" 
                android:layout_alignParentTop="true" 
                android:layout_alignParentRight="true"
                android:onClick="onNextAction">
       </Button>
    </RelativeLayout>
</LinearLayout>

Проблема в том, что если нет данных для списка или доступно несколько строк, то появится нижний колонтитул. Как это исправить. Я хочу исправить в нижней части. Я не будучтобы придти ....

Когда я добавляю этот код android:layout_weight="1", он выглядит так: enter image description here

Это моя часть Tab XML;

     <?xml version="1.0" encoding="utf-8"?>

   <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fadingEdge="horizontal">

    <RelativeLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
         >

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:textColor="#ffffff" />

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="56dp"
            android:gravity="bottom"
            android:tabStripEnabled="true"
            android:layout_alignParentBottom="true"/>

    </RelativeLayout>
   </TabHost>

Я хочу эту строку над вкладкой ..

Пожалуйста, помогите мне ..

заранее спасибо

Ответы [ 4 ]

3 голосов
/ 22 августа 2011

Попробуйте этот код,

<?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout android:id="@+id/main"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="@drawable/icon">

<!-- Header -->
<LinearLayout android:id="@+id/header"
    android:background="#0099CC"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent">

    <TextView android:id="@+id/routeCode"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Code"
        android:width="100dip"
        android:height="30dip"
        android:gravity="center_horizontal"
    />
    <TextView android:id="@+id/routeName"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Name"
        android:width="150dip"
        android:height="30dip"
        android:gravity="center_horizontal"
    />
    <TextView android:id="@+id/outlets"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Outlets"
        android:width="60dip"
        android:height="30dip"
        android:gravity="center_horizontal"
    />
</LinearLayout>

<!-- List Divider -->
<View
    android:id="@+id/myView" 
    android:layout_width="fill_parent"
    android:layout_height="1dip"
    android:background="?android:attr/listDivider"
    android:layout_below="@+id/header" />

    <!-- ListView (grid_items) -->
    <LinearLayout android:id="@+id/layout"
                  android:layout_below="@+id/myView"    
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content" >

        <ListView android:id="@android:id/list"
                  android:layout_height="wrap_content"
                  android:layout_width="fill_parent">
        </ListView>

        <TextView android:id="@id/android:empty"
                  android:layout_width="fill_parent" 
                  android:gravity="center_vertical"
                  android:layout_height="fill_parent" 
                  android:layout_marginTop="25dp" 
                  android:text="No Sales Routes Define By Admin" />
    </LinearLayout>

     <!-- Footer -->
    <RelativeLayout
       android:layout_alignParentBottom="true"  
       android:id="@+id/MyRelative"
        android:background="#000000"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_gravity="bottom">

        <Button android:text="Exit" 
                android:id="@+id/button1" 
                android:background="#0099FF"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_marginLeft="8dp"
                android:onClick="onExitAction">
        </Button>

        <Button android:layout_width="wrap_content" 
                android:text="Next" 
                android:background="#0099FF"
                android:layout_height="wrap_content" 
                android:layout_marginRight="8dp"
                android:id="@+id/button2" 
                android:layout_alignParentTop="true" 
                android:layout_alignParentRight="true"
                android:onClick="onNextAction">
       </Button>
    </RelativeLayout>
</RelativeLayout>
3 голосов
/ 22 августа 2011

Вы должны использовать веса для LinearLayout с ListView внутри:

<LinearLayout android:id="@+id/layout"
              android:layout_width="wrap_content"
              android:layout_height="0dip"
              android:layout_weight="1" >

EDIT : Используйте следующую раскладку для «Вкладок»:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fadingEdge="horizontal">

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

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:textColor="#ffffff"/>

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="56dp"
            android:gravity="bottom"
            android:tabStripEnabled="true"/>
    </LinearLayout>
</TabHost>
1 голос
/ 22 августа 2011

Это должно работать

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout android:id="@+id/main"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="#ff0000">

<!-- Header -->
<LinearLayout android:id="@+id/header"
    android:background="#0099CC"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent">

    <TextView android:id="@+id/routeCode"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Code"
        android:width="100dip"
        android:height="30dip"
        android:textColor="#000000"
        android:gravity="center_horizontal"
    />
    <TextView android:id="@+id/routeName"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Name"
        android:width="150dip"
        android:height="30dip"
        android:textColor="#000000"
        android:gravity="center_horizontal"
    />
    <TextView android:id="@+id/outlets"
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:text="Outlets"
        android:width="60dip"
        android:height="30dip"
        android:textColor="#000000"
        android:gravity="center_horizontal"
    />
</LinearLayout>

<!-- List Divider -->
<View android:layout_width="fill_parent"
    android:layout_height="1dip"
    android:background="?android:attr/listDivider" />

    <!-- ListView (grid_items) -->
    <LinearLayout android:id="@+id/layout"
                  android:layout_width="wrap_content"
                  android:layout_height="0dip"
                  android:layout_weight="1.0" >

        <ListView android:id="@android:id/list"
                  android:layout_height="fill_parent"
                  android:layout_width="fill_parent">
        </ListView>

        <TextView android:id="@id/android:empty"
                  android:layout_width="fill_parent" 
                  android:gravity="center_vertical"
                  android:layout_height="fill_parent" 
                  android:layout_marginTop="25dp" 
                  android:text="No Sales Routes Define By Admin" />
    </LinearLayout>

     <!-- Footer -->
    <RelativeLayout  android:layout_width="fill_parent"
                   android:layout_height="wrap_content"
                   android:orientation="horizontal">
        <Button android:text="Exit" 
                android:id="@+id/button1" 
                android:background="#0099FF"
                android:layout_width="wrap_content" 
                android:layout_height="wrap_content"
                android:layout_marginLeft="8dp"
                android:onClick="onExitAction"/>

        <Button android:layout_width="wrap_content" 
                android:text="Next" 
                android:background="#0099FF"
                android:layout_height="wrap_content" 
                android:layout_marginRight="8dp"
                android:id="@+id/button2"
                android:layout_alignParentRight="true" 
                android:onClick="onNextAction"/>
    </RelativeLayout>
</LinearLayout>
0 голосов
/ 22 августа 2011

Я бы соблазнился сделать ваш главный контейнер в RelativeLayout, а затем установить android:layout_alignParentBottom="true" в вашем контейнере нижнего колонтитула

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...