Страница 1 из 1

layout_weight в TableLayout

Добавлено: 24 июл 2012, 14:10
yvolohov
Уважаемые пользователи форума, прошу совета. Пишу небольшую игрушку. Главная форма выглядит следующим образом: вверху header с индикаторами (прошедшее время, достижения), по центру потомок SurfaceView для отрисовки собственно игрового поля а внизу footer с несколькими кнопками, для управления собственно состоянием игрового поля (масштабирование, перезапуск игры и т.д.).
Для реализации этой формы решил использовать TableLayout с тремя TableRows (для хедера, контента и футера соответственно). При этом хедер и футер должны занимать по 10% от размера экрана а контент соответственно 80%.

Код: Выделить всё

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background" >

    <!-- header -->
    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="fill_parent"
        android:layout_weight="10" >

    </TableRow>

    <!-- content -->    
    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="fill_parent"
        android:layout_weight="80" >

    </TableRow>

    <!-- footer -->    
    <TableRow
        android:id="@+id/tableRow3"
        android:layout_width="fill_parent"
        android:layout_weight="10" >

    </TableRow>

</TableLayout> 
Проблема в следующем: если хедер или футер пусты, то они не отображаются вовсе. Если же добавить в них содержимое, то их размеры подстраиваются под это содержимое, независимо от того, что установлено значение layout_weight. Подскажите пожалуйста, каким шаманством мне выйти из ситуации и поделить экран в пропорции 10/80/10. Перепробувал уже кучу комбинаций, но ничего не выходит. Можно конечно напрямую установить размеры хедера и футера в dp, но меня это не совсем устраивает. Впрочем, ели выхода не найду, то буду идти этим путем.

Re: layout_weight в TableLayout

Добавлено: 24 июл 2012, 14:18
Finch
а ты android:weightSum для родителя про6овал устанавливать?

Re: layout_weight в TableLayout

Добавлено: 24 июл 2012, 14:23
yvolohov
Пробовал. Не действует никак.

Re: layout_weight в TableLayout

Добавлено: 24 июл 2012, 14:57
Finch
Да 6ыть не может, у меня все ок
держи проект на основе твоего xml

http://dl.dropbox.com/u/54101088/xxx.zip

ИзображениеИзображение

Re: layout_weight в TableLayout

Добавлено: 24 июл 2012, 15:04
yvolohov
Посмотри сам, на первой катринке хедер и футер заметно толще, чем на второй. Тоесть элементы просто их раздвигают, искажая при этом пропорции. Если на второй картинке все правильно, то на первой 10/80/10 уже не будет.

Re: layout_weight в TableLayout

Добавлено: 24 июл 2012, 15:07
Finch
раздвигает потому что не помещается, но сам TableRow ото6ражается даже когда пуст
если те6я на столько волнует симметричность (даже в пару пикселей) то юзай конкретные размеры =)

Re: layout_weight в TableLayout

Добавлено: 24 июл 2012, 15:23
yvolohov
придется скоре всего так и сделать