layout_weight в TableLayout

Интерфейс, диалоги, темы, стили, меню
Ответить
yvolohov
Сообщения: 8
Зарегистрирован: 24 июл 2012, 13:49

layout_weight в TableLayout

Сообщение yvolohov » 24 июл 2012, 14:10

Уважаемые пользователи форума, прошу совета. Пишу небольшую игрушку. Главная форма выглядит следующим образом: вверху 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, но меня это не совсем устраивает. Впрочем, ели выхода не найду, то буду идти этим путем.

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: layout_weight в TableLayout

Сообщение Finch » 24 июл 2012, 14:18

а ты android:weightSum для родителя про6овал устанавливать?
CEO of a company R.id.team

yvolohov
Сообщения: 8
Зарегистрирован: 24 июл 2012, 13:49

Re: layout_weight в TableLayout

Сообщение yvolohov » 24 июл 2012, 14:23

Пробовал. Не действует никак.

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: layout_weight в TableLayout

Сообщение Finch » 24 июл 2012, 14:57

Да 6ыть не может, у меня все ок
держи проект на основе твоего xml

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

ИзображениеИзображение
CEO of a company R.id.team

yvolohov
Сообщения: 8
Зарегистрирован: 24 июл 2012, 13:49

Re: layout_weight в TableLayout

Сообщение yvolohov » 24 июл 2012, 15:04

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

Аватара пользователя
Finch
Сообщения: 439
Зарегистрирован: 16 июл 2012, 21:37

Re: layout_weight в TableLayout

Сообщение Finch » 24 июл 2012, 15:07

раздвигает потому что не помещается, но сам TableRow ото6ражается даже когда пуст
если те6я на столько волнует симметричность (даже в пару пикселей) то юзай конкретные размеры =)
CEO of a company R.id.team

yvolohov
Сообщения: 8
Зарегистрирован: 24 июл 2012, 13:49

Re: layout_weight в TableLayout

Сообщение yvolohov » 24 июл 2012, 15:23

придется скоре всего так и сделать

Ответить